Channels ▼

Developer's Reading List

, July 17, 2012 Windows Debugging, Web Apps, JavaScript, and Clojure Lead the List of New Titles
  • E-mail
  • Print

Inside Windows Debugging

by Tarik Soulami

The author is a longstanding member of the core Windows Fundamentals team. Earlier, he worked on the CLR infrastructure. So, as might be expected, he has tips and suggestions for operating deep in the belly of the beast. "Tips" is a good way to describe this collection of chapters, each of which delves into a tricky debugging problem. Chapter 2 is a discourse on various debugging tools for Windows. Chapter 3 explains how debuggers work, so you get very specific information on what debuggers can do easily and what is hard for them to do. After this introduction, he starts in on unusual capacities of the debugger: the data in various dumps, examining pseudo-registers (which are variables maintained by the debugger engine), and so on. After exploring these areas, he tackles the major debugging scenarios in detail. These include debugging access violations, heap corruptions, stack corruptions, stack overflows, and memory leaks (in both user mode and kernel mode). The rest of the book is dedicated to event tracing for Windows (EFW), which is the logging framework used extensively inside Windows. The author shows how to put it to use in your own debugging sessions, including its use to diagnose delays and unexplained memory use.

The explanations are clear, well illustrated, and completely approachable. It many ways, I'd view this as a kind of deep dive tutorial that you keep near your workstation for occasional reference when chasing down a hard bug. My only complaint is that the book discusses only mainstream models of Windows; namely, the current versions and their recent antecedent versions. No mention of Windows 8 or Win RT is made, so you have no sense how things might change in the now-known impending release. But until then, this book is highly recommended.

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.