System Software-I. Unit 6.
  1. Debugging Tools for Memory Issues.
  2. Valgrind - an instrumentation framework for building dynamic analysis tools.
  3. How to install Valgrind.
  4. Test Valgrind installation.
  5. Using gcc: first, use the Docker image to compile the program.
  6. Test case #0.
  7. Test case #1: Uninitialized memory access.
  8. Test case #5,6: Read overflow on compile-time memory (#5) and on dynamic memory (#6).
  9. Test case #8,9: UAF (use-after-free) (#8) and UAR (use-after-return) (#9).
  10. Test Case #13: Memory leak case #3 - lib API leak.
  11. Valgrind summary table.
  12. Sanitizer toolset.
  13. Building programs for use with ASan.
  14. Running the test cases with ASan. Test case #1: Uninitialized Memory Read.
  15. Test Case #2: write overflow (on compile-time memory).
  16. Test case #3: write overflow (on dynamic memory).
  17. Test Case #8: UAF (use-after-free).
  18. Test case #9: UAR (use-after-return).
  19. AddressSanitizer (ASan) summary table.
  20. A quick comparison between Valgrind and Address Sanitizer.
  21. Glibc mallopt.
Last Updated 03 Oct, 2020 21:36. <vadimov@i.ua>