Jeff Duntemann's Contrapositive Diary Rotating Header Image

February 16th, 2009:


In parallel with editing and (increasingly) writing chapters, I’ve been interviewing tools to feature in later parts of the third edition of Assembly Language Step By Step. Kate has the gig for editor, but the debugger slot has been annoyingly open for a long time. Since the beginning of the year I’ve been interviewing debuggers and GUI debugger front-ends for gdb, which is more an engine than a debugger and may well be the single most painful piece of software I’ve ever had to use. (Don’t get me started on that. Whoops. Too late.)

It’s been frustration cubed. Here are some notes on the fray thus far:

  • Nemiver does not work correctly with assembly language executables.
  • Insight would be a good choice, but it is one of the ugliest things I’ve ever seen running on Linux, and I mean ugly in the sense of, well, ugly: Badly rendered Motif/Lesstif screens that seem scruffier than they should be, with hard-to-read tiny fonts. I know why they used that widget set (it’s very lightweight) but I also think that’s no longer anything like an issue in the Linux world.
  • DDD is uglier than Insight, and doesn’t work as well.
  • KDbg was my favorite for a long time, because it’s not ugly and fairly straightforward to use, but its help system is broke and I never figured out how to dump memory or display named data items from assembly. Like Nemiver, it was really created with C and C++ in mind. Like people tell me endlessly (and shut up, already!) “Nobody uses assembly anymore.” Heh.

As I race past 65,000 words and close in on the end of Chapter 6, I was forced yesterday to make an executive decision and call Insight the winner. Insight is interesting in a number of ways: It’s not a GUI front-end for gdb; it is gdb, and has knowledge of gdb’s deep internals in a way that a separate app simply can’t match. The GUI was written in Tcl/Tk, a language I learned and enjoyed almost fifteen years ago when I got Ousterhout’s book in for review at PC Techniques. One would think it would be no big deal to rewrite Insight for Gtk or Qt, but I don’t see the dust from any stampede.

So I got me an ugly debugger. That is (given my deadlines and the significant amount of money riding on the project) better than no debugger at all.