In Chapter 2, I presented a short tutorial on using the GNU debugger. This chapter is dedicated to those curious souls who yearn to look under the hood and see how debuggers actually work. I will begin by discussing the different types of debuggers and then showing you how they perform basic debugging tasks (e.g., breakpoints and single stepping). Later on in the chapter, we will look more closely at symbolic debuggers and I will offer suggestions with regard to how they can be implemented. For those engineers interested in protecting intellectual property, I will end the chapter with a collection of techniques that can be used to thwart reverse-engineering tools.


Virtual Machine System Call Machine Instruction Instruction Pointer Object Code 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Bill Blunden 2003

Authors and Affiliations

  • Bill Blunden

There are no affiliations available

Personalised recommendations