On Mon, Sep 24, 2012 at 9:30 PM, Dave Anderson <[email protected]> wrote:
> > > ----- Original Message ----- > > > > Dave, > > > > > > On Fri, Sep 21, 2012 at 9:44 PM, Dave Anderson < [email protected] > > > 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> > > That works. :) However could it be possible to show the argument without only display its type? The kernel is defining the do_vfs_ioctl as: int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, unsigned long arg); Could the "filp, fd, cmd, arg" be showed out? > Dave > > Thanks, Lei
-- Crash-utility mailing list [email protected] https://www.redhat.com/mailman/listinfo/crash-utility
