Most helpful critical review
61 of 64 people found the following review helpful
Superficial, Short: Skip it!
on January 20, 2001
I recall the time, as I worked on a large parallel Unix debugger, and only slowly collected facts and scraps of necessary knowledge to progress. I always wondered, why not a single book was written, which would be solely devoted to the architecture, design and implementation of symbolic debuggers?
As I saw this book announced, my expectations were high. Could this be a help in organizing my knowledge about debuggers, collected so far from semi confidential industry reports or white papers, 3-4 dissertations, several implementations, plus some 10-15 conference papers with vague descriptions of implementations, claims of spectacular achievements or with mere theoretical ideas?
No, unfortunately this is not so. This book, or rather "a booklet" is very incomplete. It literally did not told me any single detail which I would not have known already. For example, missing is the description of the very standard Unix interface to control and hold a process. Since this is not a scientific book providing more generic foundations about process tracing (such as tracking of very long time running programs, replay techniques, generating snapshots etc. etc.) than I would at least expect a solid practice orientation. This should include a complete discussion of several assemblers and typical architectures, because they provide sometimes completely different means of implementing breakpoints, watchpoints or of support for threads. In many cases a debugger must be, or can be supported by a cooperating compiler. Several interesting ideas have been implemented in the back ends, which may greatly help supporting breakpoints, finding function prologues, dealing with exceptions and asynchronous signals. I also miss the specifications and a good comparison of the two most common formats holding symbolic information, Stabs and DWARF! Etc. etc., this list of missing facts and issues could go on and on.
Usually I call a book like this one "a blah blah novel." The author claims "I know something, but I will not tell what is it." Yes, there are debuggers, yes we can program them but a lot of code is necessary to do so, yes we can stop a process and advance it instruction by instruction. Yes, yes, I know all that.
I think that will have to keep waiting for a serious book about symbolic debugging! Any takers? If I only could write well...