Linux Applications Debugging Techniques

Preamble

A collection of notes about debugging applications under Linux and related topics. Probably useful for debugging dogs. Partly applicable to other Unices. Work in progress, code is now on github.

Authors

Aurelian Melinte

Table of Contents

  1. The debugger
  2. The dynamic linker
  3. Core files
  4. The call stack
  5. The interposition library
  6. Memory issues
    1. Leaks
    2. Heap corruption
    3. Stack corruption
  7. Signals
  8. Deadlocks
  9. Race conditions
  10. Resource leaks
  11. Transactional memory
  12. The compiler
  13. Aiming for and measuring performance
  14. Hardware emulators
  15. Building the toolkit
  16. Appendices
  17. References and further reading