This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [PATCH -tip ] [BUGFIX] perf probe: Add a workaround for GCC -mfentry
- From: Steven Rostedt <rostedt at goodmis dot org>
- To: Masami Hiramatsu <masami dot hiramatsu dot pt at hitachi dot com>
- Cc: Arnaldo Carvalho de Melo <acme at infradead dot org>, Ingo Molnar <mingo at elte dot hu>, Michal Marek <mmarek at suse dot cz>, Andi Kleen <andi at firstfloor dot org>, Peter Zijlstra <a dot p dot zijlstra at chello dot nl>, linux-kernel at vger dot kernel dot org, Ingo Molnar <mingo at redhat dot com>, Paul Mackerras <paulus at samba dot org>, systemtap at sourceware dot org, yrl dot pp-manager dot tt at hitachi dot com
- Date: Wed, 03 Oct 2012 09:53:55 -0400
- Subject: Re: [PATCH -tip ] [BUGFIX] perf probe: Add a workaround for GCC -mfentry
- References: <20121003121707.4186.28696.stgit@ltc138.sdl.hitachi.co.jp>
On Wed, 2012-10-03 at 21:17 +0900, Masami Hiramatsu wrote:
> Here are examples:
> -----
> <1><9a58>: Abbrev Number: 86 (DW_TAG_subprogram)
> <9a59> DW_AT_external : 1
> <9a59> DW_AT_name : (indirect string, offset: 0xd82): unregister_di
> e_notifier
> <9a5d> DW_AT_decl_file : 1
> <9a5e> DW_AT_decl_line : 551
> <9a60> DW_AT_prototyped : 1
> <9a60> DW_AT_type : <0x7c>
> <9a64> DW_AT_low_pc : 0x740
> <9a6c> DW_AT_high_pc : 0x75a
> <9a74> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
> <9a76> DW_AT_GNU_all_call_sites: 1
> <9a76> DW_AT_sibling : <0x9aac>
> <2><9a7a>: Abbrev Number: 87 (DW_TAG_formal_parameter)
> <9a7b> DW_AT_name : nb
> <9a7e> DW_AT_decl_file : 1
> <9a7f> DW_AT_decl_line : 551
> <9a81> DW_AT_type : <0x2a96>
> <9a85> DW_AT_location : 0x172f (location list)
> ...
> 0000172f 0000000000000745 0000000000000750 (DW_OP_reg5 (rdi))
> 0000172f 0000000000000750 0000000000000757 (DW_OP_reg4 (rsi))
> 0000172f 0000000000000757 000000000000075a (DW_OP_GNU_entry_value: (DW_OP_reg5 (rdi)); DW_OP_stack_value)
> 0000172f <End of list>
> -----
>
> As you can see, the location of the parameter "nb", starts from 0x745
> but unregister_die_notifier() function itself starts from 0x740.
Um, no I can't see. I guess I need to go and read up on DWARF formats.
Any good recommended links?
A quick google gives me:
http://en.wikipedia.org/wiki/DWARF
http://wiki.dwarfstd.org/index.php?title=Dwarf_FAQ
http://www.eagercon.com/dwarf/dwarf-2.0.0.pdf
Is this what you recommend reading? Or is there better documentation?
-- Steve