Re: [PATCH -tip ] [BUGFIX] perf probe: Add a workaround for GCC-mfentry

From: Steven Rostedt
Date: Wed Oct 03 2012 - 09:53:59 EST


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


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/