[PATCH] Add set/show display-linkname command

Michael Eager eager@eagerm.com
Thu Mar 21 19:11:00 GMT 2013


On 03/18/2013 06:21 PM, Michael Eager wrote:
> It's sometimes useful to know what the linkage name is for a function,
> either for C++ programs or on any target which can decorate symbols in
> various ways, such as optionally prepending an underscore.
>
> This patch adds two commands: "show display-linkname" and "set display-linkname".
> When set, the linkname is displayed whenever the function is displayed in
> in breakpoint command or when the frame is displayed.
>
> The following shows a small C++ program hitting a breakpoint and running
> a backtrace, with and without the linkage name.
>
>
> $ gdb tpp
> GNU gdb (GDB) 7.6.50.20130313-cvs
> ...
> (gdb) show display-linkname
> Whether to display linkage name for functions is off.
> (gdb) b foo
> Breakpoint 1 at 0x400a0c: file t.cpp, line 6.
> (gdb) run
> Starting program: /tmp/tpp
>
> Breakpoint 1, foo (msg=...) at t.cpp:6
> 6         cout << msg;
> (gdb) bt
> #0  foo (msg=...) at t.cpp:6
> #1  0x0000000000400a55 in main () at t.cpp:11
> (gdb) set display-linkname on
> (gdb) show display-linkname
> Whether to display linkage name for functions is on.
> (gdb) run
> The program being debugged has been started already.
> Start it from the beginning? (y or n) y
> Starting program: /tmp/tpp
>
> Breakpoint 1, foo [_Z3fooSs] (msg=...) at t.cpp:6
> 6         cout << msg;
> (gdb) bt
> #0  foo [_Z3fooSs] (msg=...) at t.cpp:6
> #1  0x0000000000400a55 in main [main] () at t.cpp:11
> (gdb) quit
>
>
> ChangeLog:
>
>    * 2013-03-18  Michael Eager <eager@eagercon.com>
>
>    * ada-lang.c (is_known_support_routine): Add linkname to find_frame_funname() call.
>    * defs.h (build_address_symbolic): Add linkname arg.
>    * disasm.c (dump_insns): Add linkname to find_frame_funname() call.
>    * printcmd.c (top.h): Include.
>    (MAX_LINKNAME_LEN): Define as 20.
>    (print_address_symbolic): Add linkname to build_address_symbolic() call, print
>    linkname if display-linkname set.
>    (build_address_symbolic): Add linkname arg, set if different from symbol name.
>    * stack.c (top.h): Include.
>    (MAX_LINKNAME_LEN): Define as 20.
>    (find_frame_funname): Add linkname arg, set if different from symbol name.
>    (print_frame): Add linkname to  find_frame_funname() call, print linkname if
>    display-linkname set.
>    * stack.h (find_frame_funname): Add linkname arg.
>    * top.c (disp_linkname): Define.
>    (show_disp_linkname): New.
>    (init_main): Add 'display-linkname' set/show command.
>    * top.h (disp_linkname): Declare.
>    * python/py-frame.c(frapy_name): Add linkname to find_frame_funname() call.

Updated patch which fixes garbled output.


-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gdb.patch
Type: text/x-patch
Size: 11694 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20130321/895a35ae/attachment.bin>


More information about the Gdb-patches mailing list