[Crash-utility] x86_64: Function parameters from stack frames

Dave Anderson anderson at redhat.com
Tue Jul 30 20:17:52 UTC 2013



----- Original Message -----
> Hi Dave,
> 
> Sorry for long delay, there were a lot things to fix and improve.
> You can find updated patch for crash 7.0.1 here:
> https://github.com/hziSot/crash-stack-parser
> 
> Alexandr
> 

Hello Alexandr,

I ran a simple "bt -H" test on the default/panic task of 160 sample
dumpfiles.

Of the 160, only 32 generated a backtrace.  115 of them just 
printed 2 or more "." characters and nothing else.  What does 
that mean?

13 of them generated segmentation violations.

2 of them generated "gdb request failed" failures trying to print 
tss_struct fields.  And I should note that at first I tried "bt -aH",
but almost every time I would get the same type of gdb request failures
on the other active, non-crashing, cpus.  So then I decided to just 
test it with a "bt -H".

And is there a reason for the special case for panic()?  They all
seem to show this:

  #   0: [RSP: 0xffff88001fb1dc10, RIP: 0xffffffff814c7be0] panic ( ... )
          < Argument list for symbol: panic
                  RDI: 0xffffffff81644a6b,        RSI: 0xffff88001fb1dd68,        RDX: 0x9
                  RCX: 0x30001,   R8: 0x73,       R9: 0x0

And lastly, 1 dumpfile generated 173 lines indicating:

  bt: page excluded: kernel virtual address: ffff810637150030  type: "long integer"
  bt: page excluded: kernel virtual address: ffff810637150018  type: "long integer"

followed by a backtrace that ended with ~50 repetive frames: 

  #   5: [RSP: 0xffff81063714ffb0, RIP: 0xffffffff8007820e] smp_apic_timer_interrupt (struct pt_regs * arg = 0xffff81063714ff98)
  #   6: [RSP: 0xffff810637150040, RIP: 0xffffffff8005dc8e] apic_timer_interrupt (void)
  ... [cut] ...
  #  60: [RSP: 0xffff810637150040, RIP: 0xffffffff8005dc8e] apic_timer_interrupt (void)
  #  61: [RSP: 0xffff810637150040, RIP: 0xffffffff8005dc8e] apic_timer_interrupt (void)
  #  62: [RSP: 0xffff810637150040, RIP: 0xffffffff8005dc8e] apic_timer_interrupt (void)

So, as it is, there are just too many issues with it in order to fold 
it into the base crash utility.

Since you've already followed my original suggestion and segregated 
the code into its own file, can you take it one step further and transform
it into an extension module?  If you did that, then I could host it
on the crash extensions web page for people to test/use.

Thanks,
  Dave




More information about the Crash-utility mailing list