Linux Applications Debugging Techniques

Preamble edit

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 edit

Aurelian Melinte

Table of Contents edit

  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