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