How to skip function prologues with stabs debug infomation?

Triple Yang triple.yang@gmail.com
Sat Aug 20 13:07:00 GMT 2011


2011/8/20 Jan Kratochvil <jan.kratochvil@redhat.com>:
> On Sat, 20 Aug 2011 05:45:01 +0200, Triple Yang wrote:
>> I agree with that. Since we can get line number from binary file's
>> section offset, and vice versa, we can skip prologue using line
>> number. The practical problem is that, I don't know how to implement
>> it, i.e. what functions should be called. Any suggestions?
>
> It is already implemented, if you just want to write a new GDB arch backend.
> This code in GDB is arch-independent.
>
> It would be better to give a reproducer or I do not understand the problem.
>
>
> Regards,
> Jan
>

Sorry.
I will give a C-like pseudocode to describe what I plan to do in
function XXX_skip_prologue(), here XXX represents my architecture
name.

    line = get_line_number(func_addr);

    next_line = find_next_statement_line_number(line); // take
advantage of debug info

    addr = get_addr(nexe_line);

Here, if func_addr is the start address of a function, we actually
skip the function prologue. (But I am not sure this idea is proper.)

And I guess gdb does the similar thing to step a source code line,
which is of course arch-independent. But I don't know where those
codes are placed. GDBing a gdb to locate them is time-consuming and
tiring. I will be very grateful if you or someone else point it out.

Best regards.

-- 
Yang Yong-Yong



More information about the Gdb mailing list