Re: functions about dump backtrace function names in mips arch
On Mon, 2011-01-03 at 22:32 +0800, loody wrote: > hi all: > > 2011/1/3 Sowmya Sridharan : > > > > Hi, > > > > I was able to check it in 2.6.36 version of kernel, and it is defined in > > traps.c. > > http://lxr.linux.no/linux+v2.6.36/arch/mips/kernel/traps.c#L205 > > > > dump_stack() calls show_backtrace function which had been show_trace in the > > earlier kernel versions. [...] > > > > [...] > > Regards, > > Sowmya > thanks for your kind help, that is what I want. > previously, I only see the address instead of function name, but after > I select CONFIG_KALLSYMS as Y, I can see the function names also. > BTW, what is the mechanism that kernel take to find out the function name? Enabling the config option, it allows to build the symbol table for kernel. It uses /proc/kallsyms. Below links could help: http://tldp.org/HOWTO/Module-HOWTO/x627.html http://fixunix.com/kernel/134739-proc-kallsyms-symbol-size.html > Regards, > miloody -- Thanks, Nilesh ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: functions about dump backtrace function names in mips arch
hi: 2011/1/3 loody : > hi all: > > 2011/1/3 Sowmya Sridharan : >> >> Hi, >> >> I was able to check it in 2.6.36 version of kernel, and it is defined in >> traps.c. >> http://lxr.linux.no/linux+v2.6.36/arch/mips/kernel/traps.c#L205 >> >> dump_stack() calls show_backtrace function which had been show_trace in the >> earlier kernel versions. >> I compared between 2.6.14 and the latest version, and here are the >> differences: >> --- >> http://lxr.linux.no/linux+v2.6.14/arch/mips/kernel/traps.c#L110 >> function: show_trace >> while (!kstack_end(stack)) { >> addr = *stack++; >> if (__kernel_text_address(addr)) { >> printk(" [<%0*lx>] ", field, addr); >> print_symbol("%s\n", addr); >> } >> } >> - >> In the latest kernel, show_backtrace function is used, which does the same >> thing, but through different functions >> http://lxr.linux.no/linux+v2.6.36/arch/mips/kernel/traps.c#L126 >> function: show_backtrace >> printk("Call Trace:\n"); >> do { >> print_ip_sym(pc); >> pc = unwind_stack(task, &sp, pc, &ra); >> } while (pc); >> >> >> Regards, >> Sowmya > thanks for your kind help, that is what I want. > previously, I only see the address instead of function name, but after > I select CONFIG_KALLSYMS as Y, I can see the function names also. > BTW, what is the mechanism that kernel take to find out the function name? from log such as: <80128580>] do_softirq+0x48/0x68 i know 0x48 is the offset of do_softirq, but how can I locate precise what the offset 0x48 of do_softirq is? "objdump -s"? Regards, miloody ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: functions about dump backtrace function names in mips arch
hi all: 2011/1/3 Sowmya Sridharan : > > Hi, > > I was able to check it in 2.6.36 version of kernel, and it is defined in > traps.c. > http://lxr.linux.no/linux+v2.6.36/arch/mips/kernel/traps.c#L205 > > dump_stack() calls show_backtrace function which had been show_trace in the > earlier kernel versions. > I compared between 2.6.14 and the latest version, and here are the > differences: > --- > http://lxr.linux.no/linux+v2.6.14/arch/mips/kernel/traps.c#L110 > function: show_trace > while (!kstack_end(stack)) { > addr = *stack++; > if (__kernel_text_address(addr)) { > printk(" [<%0*lx>] ", field, addr); > print_symbol("%s\n", addr); > } > } > - > In the latest kernel, show_backtrace function is used, which does the same > thing, but through different functions > http://lxr.linux.no/linux+v2.6.36/arch/mips/kernel/traps.c#L126 > function: show_backtrace > printk("Call Trace:\n"); > do { > print_ip_sym(pc); > pc = unwind_stack(task, &sp, pc, &ra); > } while (pc); > > > Regards, > Sowmya thanks for your kind help, that is what I want. previously, I only see the address instead of function name, but after I select CONFIG_KALLSYMS as Y, I can see the function names also. BTW, what is the mechanism that kernel take to find out the function name? Regards, miloody ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: functions about dump backtrace function names in mips arch
Hi, I was able to check it in 2.6.36 version of kernel, and it is defined in traps.c. http://lxr.linux.no/linux+v2.6.36/arch/mips/kernel/traps.c#L205 dump_stack() calls show_backtrace function which had been show_trace in the earlier kernel versions. I compared between 2.6.14 and the latest version, and here are the differences: --- http://lxr.linux.no/linux+v2.6.14/arch/mips/kernel/traps.c#L110 function: show_trace while (!kstack_end(stack)) { addr = *stack++; if (__kernel_text_address(addr)) { printk(" [<%0*lx>] ", field, addr); print_symbol("%s\n", addr); } } - In the latest kernel, show_backtrace function is used, which does the same thing, but through different functions http://lxr.linux.no/linux+v2.6.36/arch/mips/kernel/traps.c#L126 function: show_backtrace printk("Call Trace:\n"); do { print_ip_sym(pc); pc = unwind_stack(task, &sp, pc, &ra); } while (pc); Regards, Sowmya kernelnewbies-boun...@kernelnewbies.org wrote on 01/02/2011 04:31:08 PM: > [image removed] > > Re: functions about dump backtrace function names in mips arch > > Mulyadi Santosa > > to: > > loody > > 01/02/2011 04:33 PM > > Sent by: > > kernelnewbies-boun...@kernelnewbies.org > > Cc: > > Kernel Newbies > > On Sun, Jan 2, 2011 at 15:26, loody wrote: > > Dear all: > > If i remember correctly, when kernel panic there is a function I can > > use to dump all the names of backtrace functions. > > I have searched arch/mips/traps.c, but I only can see the dump > > functions of cpu registers, > > In x86, it's dump_stack(). The definition can be read here online: > http://lxr.linux.no/#linux+v2.6.36/arch/x86/kernel/dumpstack.c#L198 > > -- > regards, > > Mulyadi Santosa > Freelance Linux trainer and consultant > > blog: the-hydra.blogspot.com > training: mulyaditraining.blogspot.com > > ___ > Kernelnewbies mailing list > Kernelnewbies@kernelnewbies.org > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies =-=-= Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Thank you ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: functions about dump backtrace function names in mips arch
On Sun, Jan 2, 2011 at 15:26, loody wrote: > Dear all: > If i remember correctly, when kernel panic there is a function I can > use to dump all the names of backtrace functions. > I have searched arch/mips/traps.c, but I only can see the dump > functions of cpu registers, In x86, it's dump_stack(). The definition can be read here online: http://lxr.linux.no/#linux+v2.6.36/arch/x86/kernel/dumpstack.c#L198 -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies