Hi,

Is the x64 args-in-stacktraces support in mdb for kernel crashdumps only ? 
I've tried compiling a userspace program with a recent gcc that has the 
"-msave-args" option, and the code generated reflects this:

main:           pushq  %rbp
main+1:         movq   %rsp,%rbp
main+4:         movq   %rbx,-0x28(%rbp)
main+8:         movq   %r12,-0x20(%rbp)
main+0xc:       movq   %r13,-0x18(%rbp)
main+0x10:      movq   %rsi,-0x10(%rbp)         <==
main+0x14:      movq   %rdi,-0x8(%rbp)          <==

But then, mdb doesn't care about this in the coredump:

> $C
fffffd7fffdff3a0 libc.so.1`strlen+0x278()
fffffd7fffdff450 main+0xa9()
fffffd7fffdff460 _start+0x6c()

"-g" makes no difference. Neither does applying ctfconvert to
the -g-compiled binary, although ctfdump then says the description
is there:

- Functions 
------------------------------------------------------------------

   [3] FUNC returns: 5 args: (5, 8)
- Types 
----------------------------------------------------------------------

[ ... ]
   <5> INTEGER int encoding=SIGNED offset=0 bits=32
   [6] INTEGER char encoding=SIGNED CHAR offset=0 bits=8
   [7] POINTER (anon) refers to 6
   [8] POINTER (anon) refers to 7


How do I tell mdb that my userspace binary has been compiled with 
-save_args ? Is the support for that supposed to be working with userspace 
programs, or is it kernel-only at the moment ?


Thanks,
FrankH.

Reply via email to