----- Original Message -----
 
 Dave,
 
 
 On Fri, Sep 21, 2012 at 9:44 PM, Dave Anderson < anderson(a)redhat.com
 > wrote:
 
 
 
 
 
 ----- Original Message -----
 > 
 > Hi Dave,
 > 
 > 
 > I notice there was some discussion around on enabling
 > the display function parameters feature for crash tool.
 > Like this one:
 > 
http://www.redhat.com/archives/crash-utility/2009-May/msg00016.html
 
 Yes, it seems to come up every few years. People have tried, but it
 has never come to fruition.
 
 
 > 
 > Although the answer seems to be quite clear, it should be hard to
 > support such feature. But does this feature cannot be done anyway?
 > I think this feature would be great in assisting kernel debug.
 > 
 > The main feature I require, first should be know each param's value in the call
stack.
 > Then it is better to know each call stack's param's name.
 > 
 > Like for do_vfs_ioctl function, it is better to display as:
 > do_vfs_ioctl(filp=xxx, fd=xxx, cmd=xxx, arg=xxx)
 > 
 > Do you have any idea on how this could be implemented?
 
 No I don't.
 
 
 
 Sorry for asking the stupid question, but I notice that we could
 get the structure member in crash by "struct" command:
 
 crash> struct stackframe
 struct stackframe {
 long unsigned int fp;
 long unsigned int sp;
 long unsigned int lr;
 long unsigned int pc;
 }
 SIZE: 16
 
 
 I check the crash code, and find cmd_struct use gdb interface to
 parse it out.
 
 
 And the gdb itself seems already could parse out function argument[1], so could
 we still use similar mechanism as the "struct" command to implement a
"func"
 command, which could shows the function declaration? 
You can either use the "whatis" command to get the function declaration:
 crash> help whatis
 NAME
   whatis - search symbol table for data or type information
 SYNOPSIS
   whatis [struct | union | typedef | symbol] 
 DESCRIPTION
   This command displays the definition of structures, unions, typedefs or
   text/data symbols.
 ...
 crash> whatis do_vfs_ioctl
 int do_vfs_ioctl(struct file *, unsigned int, unsigned int, long unsigned int);
 crash>
Or print it with "p", which gives you both the declaration and its virtual
address:
 crash> p do_vfs_ioctl
 do_vfs_ioctl = $14 = 
  {int (struct file *, unsigned int, unsigned int, long unsigned int)} 0xffffffff811247ec
<do_vfs_ioctl>
 crash> 
Dave