This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [BUG?] semantic error: failed to retrieve location attribute for local
On Mon, Dec 04, Frank Ch. Eigler wrote:
> > The full error message is as follows:
> > [...]
> > querying entrypc c0170197 of instance of inline 'real_lookup'
> > probe real_lookup@fs/namei.c:447 kernel section=.text pc=0xc0170197
> > finding location for local 'parent' near address c0170197, module bias 0
> > finding location for local 'name' near address c0170197, module bias 0
> > [...]
> > semantic error: failed to retrieve location attribute for local 'name'
> > (dieoffset: 85127198053): identifier '$name' at real_lookup.stp:9:20
> > [...]
> > Is this a bug?
>
> Problems such as this tend to be limitations of gcc debugging
> information quality. One frequently-hit bug is that few actual
> parameters get proper debugging information emitted, even if they are
> used by the inlined function body.
This is a major problem. A lot of interesting code is inlined in the
kernel. Any plans/ideas how to fix this issue?
But the debuginfo is emitted AFAICS, isn't it?
<1><6dd453>: Abbrev Number: 63 (DW_TAG_subprogram)
DW_AT_sibling : <6dd4b5>
DW_AT_name : (indirect string, offset: 0x38365): real_lookup
DW_AT_decl_file : 1
DW_AT_decl_line : 447
DW_AT_prototyped : 1
DW_AT_type : <6d4e44>
DW_AT_inline : 1 (inlined)
<2><6dd465>: Abbrev Number: 61 (DW_TAG_formal_parameter)
DW_AT_name : (indirect string, offset: 0x8bfef): parent
DW_AT_decl_file : 1
DW_AT_decl_line : 446
DW_AT_type : <6d4e44>
<2><6dd471>: Abbrev Number: 61 (DW_TAG_formal_parameter)
DW_AT_name : (indirect string, offset: 0x43b44): name
DW_AT_decl_file : 1
DW_AT_decl_line : 446
DW_AT_type : <6d7bc9>
<2><6dd47d>: Abbrev Number: 50 (DW_TAG_formal_parameter)
DW_AT_name : nd
DW_AT_decl_file : 1
DW_AT_decl_line : 446
DW_AT_type : <6d7b2b>
<2><6dd488>: Abbrev Number: 51 (DW_TAG_variable)
DW_AT_name : (indirect string, offset: 0x38552): result
DW_AT_decl_file : 1
DW_AT_decl_line : 448
DW_AT_type : <6d4e44>
<2><6dd494>: Abbrev Number: 64 (DW_TAG_variable)
DW_AT_name : dir
DW_AT_decl_file : 1
DW_AT_decl_line : 449
DW_AT_type : <6d7851>
<2><6dd4a0>: Abbrev Number: 65 (DW_TAG_lexical_block)
DW_AT_sibling : <6dd4b3>
<3><6dd4a5>: Abbrev Number: 51 (DW_TAG_variable)
DW_AT_name : (indirect string, offset: 0x211b): dentry
DW_AT_decl_file : 1
DW_AT_decl_line : 468
DW_AT_type : <6d4e44>
<3><6dd4b1>: Abbrev Number: 58 (DW_TAG_lexical_block)
<2><6dd4b3>: Abbrev Number: 58 (DW_TAG_lexical_block)