Summary

In this chapter, we have attempted to show the reader several key points, tools and techniques; among them:

  • Humans will make mistakes; this is especially true with memory unmanaged languages (C, C++).
  • There is a real need for powerful memory debug tools on nontrivial codebases.
  • We covered two of these best in class dynamic analysis tools in detail:
    • Valgrind's Memcheck
    • Sanitizers (primarily ASan)
  • Glibc allows some tuning of malloc via the mallopt(3) API, as well as via environment variables.
  • Ensuring complete code coverage when building test cases is absolutely crucial to the success of a project.
The next chapter is related to the essentials aspects of file I/O which is essential for a component reader to know. It introduces ...

Get Hands-On System Programming with Linux now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.