[rfa] Attach vsyscall support for GNU/Linux
Andrew Cagney
cagney@gnu.org
Mon Oct 25 22:46:00 GMT 2004
Mark Kettenis wrote:
> Date: Sun, 24 Oct 2004 19:16:36 -0400
> From: Daniel Jacobowitz <drow@false.org>
>
> Thanks for the explanation Daniel!
>
> Unwinding bugs aside, I think it's valuable for GDB to know that it is
> at a signal trampoline. I think the custom display in backtrace is
> valuable. That means we should look for signal handlers before looking
> for CFI. For NPTL that value judgement would fall the other way - not
> having to special-case signal handlers is a clear win.
>
> Given the fact that it is desirable for GDB to know that it's dealing
> with a signal handler, I think the correct approach is to extend the
> DWARF2 unwinder with a method to get the frame type, similar to what
> we already do for pre-initializing the register state.
The ``correct approach'' is both more complicated and simplier (the
complexity comes with the amount of refactoring, the simplicity from the
result):
At present we've the relationship:
FRAME <>---- UNWINDER
<>
|
FUNCTION ---> SYMBOL
where the UNWINDER is providing attributes and methods such as:
- unwind register
- callee frame?
while the FUNCTION provides attributes such as:
- code start/range
- function name
It needs to be changed so more like:
SYMBOL
/|\
|
FRAME <>----- FUNCTION <>------ UNWINDER
and have the FUNCTION provide:
- signal trampoline?
- code start/range
- function name
and the FUNCTION's unwinder just supply registers. For the case being
discussed, this would let us equally implement:
FRAME <>----- SIGTRAMP-FUNCTION <>----- DWARF2-UNWINDER
FRAME <>----- SIGTRAMP-FUNCTION <>----- SIGTRAMP-UNWINDER
FRAME <>----- SIGTRAMP-FUNCTION <>----- UNWINDER-PROXY
(for the last case, the actual unwinder being selected if/when needed).
On the down side, this means replacing the frame identification
heuristic found in frame-unwind with robust logic in the symtab, and
expanding symbol.
On the upside, this means that the function symbol starts correctly
identifying these probed frames (at present the're all b-).
Andrew
More information about the Gdb-patches
mailing list