Practical Foundations of Debugging (x86)

Original lectures written during the first half of 2004 (HTML format):

  1. Memory, registers and simple arithmetic 
  2. Number representations and pointers
  3. Bytes, words, double words and pointers to memory
  4. Instruction pointer and disassembling a program with pointers
  5. Memory and stacks
  6. Frame pointer and local variables (Part 1)
  7. Frame pointer and local variables (Part 2)
  8. Function parameters
  9. Function pointer parameters (Part 1)
  10. Function pointer parameters (Part 2)
  11. Virtual Memory, Processes and Threads (Part 1)
  12. Virtual Memory, Processes and Threads (Part 2)
  13. Arrays and structures in memory (Part 1)
  14. Arrays and structures in memory (Part 2)

The same lectures in PDF format:

  1. Memory, registers and simple arithmetic
  2. Number representations and pointers
  3. Bytes, words, double words and pointers to memory
  4. Instruction pointer and disassembling a program with pointers
  5. Memory and stacks
  6. Frame pointer and local variables (Part 1)
  7. Frame pointer and local variables (Part 2)
  8. Function parameters
  9. Function pointer parameters (Part 1)
  10. Function pointer parameters (Part 2)
  11. Virtual Memory, Processes and Threads (Part 1)
  12. Virtual Memory, Processes and Threads (Part 2)
  13. Arrays and structures in memory (Part 1)
  14. Arrays and structures in memory (Part 2)

Additional lecture about lvalues, rvalues and pointers:

lvalues, rvalues and pointers (HTML)
lvalues, rvalues and pointers (PDF)

Announcements:

New Book Memory Dump Analysis Anthology, Volume 1