[Crash-utility] dis command not correct in crash [ ARM only ]

Dave Anderson anderson at redhat.com
Wed Mar 6 14:31:58 UTC 2013



----- Original Message -----
> On Tue, Mar 05, 2013 at 08:58:58AM -0500, Dave Anderson wrote:
> > I'm thinking that it's probably best that the ".isra..." should be stripped
> > during the symbol storage phase so that the crash sources have no idea
> > that they ever existed with those names.  The module symbol storage code has
> > always done a similar thing in strip_module_symbol_end().
> > 
> > And the gdb module must be doing the same kind of thing, because you can pass
> > the "stripped" symbol name to gdb, and it knows what it is:
> > 
> >  crash> dis get_sigframe
> >  symbol not found: get_sigframe
> >  possible alternatives:
> >    ffffffff81058090 (t) get_sigframe.isra.1
> >  crash>
> > 
> >  crash> disass get_sigframe
> >  Dump of assembler code for function get_sigframe:
> >     0xffffffff81058090 <+0>:     nopl   0x0(%rax,%rax,1)
> >     0xffffffff81058095 <+5>:     push   %rbp
> >     0xffffffff81058096 <+6>:     mov    %rsp,%rbp
> >     0xffffffff81058099 <+9>:     push   %rbx
> >     0xffffffff8105809a <+10>:    mov    %rdx,%rbx
> >     0xffffffff8105809d <+13>:    sub    $0x18,%rsp
> >  ...
> > 
> > Anyway, I'll take care of that.
> 
> Great, thanks.
> 
> One more thing - it looks like there are other "cloning symbols" in addition
> to .isra... you can find the list here:
> 
> http://gcc.gnu.org/viewcvs/trunk/libiberty/testsuite/demangle-expected?revision=196065&view=markup
> 
> (find comment saying "Clone suffix tests"). Maybe we should handle them as well?

Right, I did see another googled-reference to other demangling/cloning
text symbols with extensions added to them, but I want to be very careful
not to throw the baby out with the bathwater.  

So far it does seem safe to truncate all of the ".isra." symbols.

But then I looked at the ".constprop." symbols, for example:
 
 crash> sym -q kzalloc
 ffffffff81068060 (t) kzalloc.constprop.8
 ffffffff8108c630 (t) kzalloc
 ffffffff8134d1ee (t) kzalloc.constprop.2
 ffffffff8134f1dd (t) kzalloc
 ffffffff81358f5d (t) kzalloc
 ffffffff8135ff7d (t) kzalloc
 ffffffff813691fd (t) kzalloc
 ffffffff813a53c0 (t) kzalloc
 ffffffff813aca30 (t) kzalloc.constprop.3
 ...

If I stripped them, a "dis kzalloc" would then select the
first one it sees, which may not be the one of interest.
I think that it would probably be more helpful, or at least
safer, if they were left as is.
 
And then there are the ".part." symbols with no preceding ".isra.".
I haven't had the chance to study whether it's safe to strip
them, but upon first glance they look strippable.  

But I want to do this carefully, perhaps also adding an invocation
command line to opt-out of any stripping at all. 

Dave





More information about the Crash-utility mailing list