Application-Level Debugging and Profiling: Gaps in the Tool Ecosystem
summary
Describes a concrete gap: existing debuggers (GDB, Valgrind, undo) and tracers (strace/ltrace, LTTng) don’t connect application flow to resource usage, so a custom Breeze tracing tool uses LD_PRELOAD to capture program/script hierarchies and add LD_PRELOAD hot-swap of file paths at runtime. Case studies show misplaced builds hammering networked scratch instead of local SLT and a license lookup that wastes ~200 ms — over 30% of short-job runtime — proving this matching of calls to IO and network is actionable.
AI-written summary · about
chapters (18)
- 0:00Start
- 0:26Application-level Tracing
- 1:04Who am I?
- 2:10What am I going to talk about?
- 11:59New Instruction-level Debuggers
- 13:39Application-level Debuggers: ptrace
- 15:58Application-level Debuggers: LD_PRELOAD
- 19:33Switching file systems with LD_PRELOAD
- 23:51System Design
- 27:46Case Study 1: ARM filesystem profiling
- 28:46Case Study 1: ARM CAD Flow
- 29:39Case Study 1: Profiling file IO results
- 32:42Case Study 3: Cadence Client Technology
- 34:28Problem 1: Distributed applications
- 37:04Problem 2: What should we measure?
- 38:07Solution: Design for Profiling?
- 39:34Solution: Custom profiling frameworks
- 40:42Big Data: Monitor everything and correlate
related talks
34mTrace-Profiling: A New Way About How to Track Application Behavior
46mReal World Debugging with eBPF
44mObservability Tools C++: Beyond GDB and printf - Tools to Understand the Behavior of Your Program
56mContinuous Profiling the missing piece in your observability puzzle
37mKernel and userspace tracing with LTTng and friends
24mCommunity Driven Breakout Session: Continuous Profiling
01h 00mInvestigating C++ Applications in Production on Linux and Windows
01h 00mSystems @Scale Summer Q&A Week 4
