There's a debugger called MDB which debugs linux startup from boot with
full symbols (it encapsulates
linux similar to Xen), including setup of the internal tables. Its
better than most of the other tools. Unfortnately,
its not free, but it is as powerful as any periscope board you have ever
seen.
I use it for all my development and I can track down bugs very quickly
with it.
http://www.kdebug.com
When you get tired of using printk and stone knives and bearskins to
look for the problem, you may wish to
consider it, if these other approaches keep failing. I have seen this
thread bounce around and I share your frustration
with debugging Linux, its not easy for the most part and Linus' "use the
force' model does not work for everyone.
Jeff
Thushara Wijeratna wrote:
Samuel, thanks much for the pointers, I'm following up on UML.
BTW, I fixed my earlier problem after realizing (a chat with a Linux
savvy friend had nothing to do with it...) Basically I made the initrd
image on the dev machine for the same kernel version and copied it
over to the test machine, it then booted.
I can now actually attach gdb and poke around and try to figure out
why it is throwing a SIGSEV. I have a stack like this:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1]
0x00000000 in ?? ()
(gdb) bt
#0 0x00000000 in ?? ()
#1 0xc03051db in psmouse_interrupt (serio=0xc048cde0, data=250
'\uffff', flags=0,
regs=0x0) at drivers/input/mouse/psmouse-base.c:206
#2 0xc030882a in i8042_interrupt (irq=0, dev_id=0x0, regs=0x0)
at drivers/input/serio/i8042.c:433
#3 0xc03084f9 in i8042_aux_write (port=0x0, c=232 '\uffff')
at drivers/input/serio/i8042.c:235
#4 0xc03053bb in psmouse_sendbyte (psmouse=0xf70aa7f8, byte=232
'\uffff')
at include/linux/serio.h:77
and this is the code inside psmouse-base.c that is crashing:
rc = psmouse->protocol_handler(psmouse, regs);
So I'm guessing I did't specify an option correctly in the `make
menuconfig` so that the kernel identifies my mouse and installs a
proper handler for it? It is a USB mouse and I thought I enabled it,
but I'm guessing I missed something.
Thanks a lot for all your help, at some point I want to contribute
testing builds, this is good training...
On 11/20/06, Samuel Korpi <[email protected]> wrote:
Hi,
I don't know what sort of debugging needs you have, exactly, but I
would suggest you take a look at User Mode Linux (UML). UML provides a
safe and pretty easy way to start you with kernel debugging and just
looking into kernel internals. It is a virtual kernel running in user
space, so it doesn't require a separate test machine, and you can
debug it with normal gdb. Furthermore, it is included in current
vanilla kernels, so you can get started without any extra patches.
Main sources for information concerning UML are:
Main page: http://www.user-mode-linux.org/
HOWTO: http://user-mode-linux.sourceforge.net/UserModeLinux-HOWTO.html
Wiki: http://uml.jfdi.org/
Precompiled kernels and root file systems: http://uml.nagafix.co.uk/
/Samuel Korpi
-
To unsubscribe from this list: send the line "unsubscribe
linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]