This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ignore helper no longer works?



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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]