ignore helper no longer works?

Andrew Cagney ac131313@redhat.com
Thu Jul 3 15:10:00 GMT 2003


> 1) Say it is my responsibility to determine the return address anywhere in
> code, even if it means writing a whole lot of code in gdb to simulate the
> execution of these stubs.
> 
> 2) Fix gdb at a higher level so that it doesn't try to obtain a return
> address from a helper function - instead keep stepping (like it gdb used to
> do).

Sounds like you've got two problems:

- When stepping, the need to identify and single step through 
trampolines / helpers.

- When stopped, the need to back trace out of a trampoline / helper.

Given a core file, it isn't possible to `step'.  Your unwinder is going 
to need to identify and dig itself out of that hole.  Main thing to do 
is to not lie - from what I understand of your case, given a callee that 
jumped to a helper, you'll end up displaying:
	<helper>
	caller

Andrew


> I can figure out the FP ok (all be it that it is painful without being able
> to see the prologue) - the old system only asked for the FP and after
> detecting that it was the same frame, kept stepping.
> 
> BTW - I have also noticed that gdb now does not call ignore_helper for any
> step-over operations, instead relying on the tdep to supply the return
> address for the stub. It think it always used to call ignore_helper and if
> it was a helper then it stepped rather that setting a breakpoint as if it
> was a function.
> 
> I don't want to be too quick to butcher infrun - I would appreciate your
> advice.




More information about the Gdb mailing list