Re: New BSD licensed debugger

From: Andrew Cagney <andrew.cagney_at_gmail.com>
Date: Wed, 16 Sep 2009 16:37:33 -0400
Wicked; the location code, in particular, is sick.  As you've noticed,
this isn't rocket science; and good language choice does make life
easier.

Several things to consider.

Rather than frame-base, I'd use CFA or call-frame-address found in
.debug_frame or CFI when identifying frames (and determining if the
frame changed such as for step).  In addition, since frameless
functions don't modify the CFA (they don't use the stack) you'll want
to be combining it with the function's address giving a
FrameIdentifier (oh, and IA-64 has two stacks so ... :-)

The unwinder looks to be trying to simultaneously handle both
high-level inline and low-level ABI (CFA) frames, an alternative
approach is to keep them separate (decorator pattern works well here)
having an abi-only chain and then above that a chain of higher-level
possibly inline frames.

A non-polling implementation would make a long term goal - which
requires a mechanism for simultaneously blocking on both process and
i/o events - on linux, at least, this is still a rats nest of bugs.
Received on Wed Sep 16 2009 - 19:25:05 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:55 UTC