How do debuggers (really) work
Have you ever wondered what REALLY happens when you set a breakpoint in Your Favourite Debugger? Or why sometimes a function is missing from a call stack? If so, you will enjoy this Debugger Extravaganza! This presentation will analyse how does gdb control another process, what happens when a breakpoint is hit and how does it hit in the first place. Why does a conditional breakpoint slow down the process so much?
And what is is about the remote session and kgdb? We will also look at integration with processor's debug logic in the hardware via perf subsystem, its features (a watchpoint, anyone?) and limitations. There may be also a moment to discuss what is a "JTAG debugger", why would you want to use it and why would you not. We will finish with a brief view at debug symbols and why should you say "return" rather then "call" stack.
United Kingdom. Cambridge
I've worked with so called "embedded Linux" for more then ten years now, currently for ARM in Cambridge, UK as a Principal Engineer, with main focus on Linux developer tools, in all possible form and shape. My recent interest include performance analysis and optimisation. Every now and then I also act as a trainer on ARM software courses, write developer articles and give technical talks.