History

Documentation: add hint about call traces & module symbols to BUG-HUNTING

Here's a couple of small additions to BUG-HUNTING. 1. point out that you can list code in gdb with only one command (gdb) l *(<symbol> + offset) 2. give a very brief hint how to decode module symbols in call traces

Richard Kennedy committed 18 years ago

Commit dcc85cb1 parent 844fcc51 file · +17 −0Browse files

Unified · Split

Documentation/BUG-HUNTING+17−0
@@ -214,6 +214,23 @@ And recompile the kernel with CONFIG_DEBUG_INFO enabled: · 213 unmodified lines
214 gdb vmlinux214 gdb vmlinux
215 (gdb) p vt_ioctl215 (gdb) p vt_ioctl
216 (gdb) l *(0x<address of vt_ioctl> + 0xda8)216 (gdb) l *(0x<address of vt_ioctl> + 0xda8)
217or, as one command
218 (gdb) l *(vt_ioctl + 0xda8)
219
220If you have a call trace, such as :-
221>Call Trace:
222> [<ffffffff8802c8e9>] :jbd:log_wait_commit+0xa3/0xf5
223> [<ffffffff810482d9>] autoremove_wake_function+0x0/0x2e
224> [<ffffffff8802770b>] :jbd:journal_stop+0x1be/0x1ee
225> ...
226this shows the problem in the :jbd: module. You can load that module in gdb
227and list the relevant code.
228 gdb fs/jbd/jbd.ko
229 (gdb) p log_wait_commit
230 (gdb) l *(0x<address> + 0xa3)
231or
232 (gdb) l *(log_wait_commit + 0xa3)
233
217 234
218Another very useful option of the Kernel Hacking section in menuconfig is235Another very useful option of the Kernel Hacking section in menuconfig is
219Debug memory allocations. This will help you see whether data has been236Debug memory allocations. This will help you see whether data has been