September 1992 - DEBUGGING, TOOLS AND TECHNIQUES


FEATURES

POSTMORTEM DEBUGGING
by Matt Pietrek

Postmortem debugging helps you isolate program problems by taking a snapshot of the machine at the time a crash occurs. As Matt points out, if you have the tools to support the technique, postmodern debugging is particularly useful in protected-mode Windows.

AN EXCEPTION HANDLER FOR WINDOWS 3
by Brett Salter

When writing Periscope/32 for Windows 3, Brett needed to debug the debugger so he developed WINX.386. This Windows exception handler is implemented as an Enhanced Mode Windows virtual device driver that oversees what's happening with other VxDs, normal Windows applications and drivers, and the DOS box--including TSRs and DOS device drivers.

YOUR OWN PROTECTED-MODE DEBUGGER
y Rick Knoblaugh

The 80386/486 protected-mode debugger Rick presents here makes use of the 386's debug registers as well as protected and virtual-8086 modes. It also enables breakpoints to be generated on code execution (including ROM code), interrupts, data accesses, and I/O accesses and it can coexist with a real-mode debugger such as Debug or Codeview.

HIGH-RESOLUTION TIMING
by Thomas Roden

For many applications, the PC's built-in timer just isn't fast enough. Thomas untangles the PC timer, then offers up three externally referenced timer functions--along with a program that verifies them--that provide high-resolution timing.

AN IMPROVED LISP-STYLE LIBRARY FOR C
by Douglas Chubb

Douglas reexamines and updates Daniel Ozick's Lisp-style C library presented in our August 1991 issue. This improved version sports a redesigned garbage collector that makes the system more efficient, nearly automatic, and easy to use.

EMBEDDED SYSTEMS

THE UNIVERSAL DEBUGGER INTERFACE
by Daniel Mann

Dan examines the Universal Debugger Interface, a processor-independent specification that promises greater debug-tool configurability. He also discusses how to go about integrating the UDI with existing tools, using as an example the Free Software Foundation's GDB C-Language source-level debugger.

DEBUGGING REAL-TIME SYSTEMS
by Gurjol Singh, Moses Joseph, and Dave Barnett

Modular and incremental development and debugging lead to reliable real-time systems that perform the functions they're designed to. Our authors use this approach when building a simulated data-acquisition system.

NETWORKED SYSTEMS

CRASH TRACEBACKS IN UNIX
by Alan Dunham

This UNIX-based VAX/VMS-like crash traceback utility reports a list of subroutines being executed when the crash occurred, along with line numbers, parameter values, and local symbol values.

EXAMINING ROOM

WINDOWS TOOLHELP
by Mike Sax

ToolHelp is a DLL that lets you peek and poke into the internals of Windows 3.1. Mike discusses ToolHelp functions, then presents a programming utility that lets you remove DLLs and programs stuck in memory without having to restart Windows to recompile.

PROGRAMMER'S WORKBENCH

A VIDEO COMPATIBILITY INTERFACE FOR TURBO DEBUGGER
by Danny Thorpe

The Video Compatibility Interface of Borland's Turbo Debugger for Windows allows an external DLL to handle all the video-mode switching for a particular video card or chipset. Danny describes the services a custom video DLL must provide.

COLUMNS

PROGRAMMING PARADIGMS
by Michael Swaine

Are those visitors knocking at Michael's door using--or abusing--the "paradigm" moniker? Our editor-at-large examines some interesting programming tools and applications, before moving on to books and conferences.

C PROGRAMMING
by Al Stevens

This month, Al discusses the four parts of the D-Flat help system: a text help database; a compression/decompression algorithm: the hooks in the dialog boxes, menus, and program code that make a particular text display the current one; and the HELPBOX window class that displays the help text and allows the user to navigate it.

STRUCTURED PROGRAMMING
by Jeff Duntemann

Before putting Turbo Vision aside for awhile, Jeff uses Borland's standard file open dialogs, a undocumented "gift" that comes with the Turbo Pascal 6.0, to develop the final, streamable version of HCALC, his mortgage calculator program.

GRAPHICS PROGRAMMING
by Michael Abrash

Texture mapping is the process of mapping a bitmap image onto the surface of a polygon that's been transformed in the process of 3-D drawing. Michael describes a quick-and-dirty texture mapping technique that starts with a quick determination of what pixel value to draw for each pixel in the transformed destination polygon.

PROGRAMMER'S BOOKSHELF
by William F. Jolitz

Are the computer and telecommunications industries butting heads instead of holding hands when building tomorrow's global communication networks?

FORUM

EDITORIAL
by Jonathan Erickson

LETTERS
by you

SWAINE'S FLAMES
by Michael Swaine

PROGRAMMER'S SERVICES

OF INTEREST
by Tami Zemel


Copyright © 1992, Dr. Dobb's Journal