From: Matt C. <ma...@co...> - 2000-12-07 23:47:37
|
Jeff Dike wrote: > > Had the kernel paniced when you got the backtrace? If so, that thread should > have been in the middle of panic. Yes, the kernel had already paniced by this point. I get this on the console: Kernel panic: Kernel mode fault at addr 0x0, ip 0x1006ab71 In interrupt handler - not syncing > In any case, this looks pretty bogus: > > #4 0x1009534c in segv (address=8, ip=268849158, is_write=2, is_user=0) > at trap_kern.c:66 > > Can you do an 'i sym <addr>' and 'i line *<addr>' where <addr> is whatever is > in the ip argument of segv? I ran it again, same problem, just a longer backtrace. I've left this one running, so if you need more information, I can still enter more commands into debug. Anyways, here's my debug session so far with the extra information you asked for: 2000009 att 1 b start_kernel c GNU gdb 4.18 Copyright 1998 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"... (gdb) att 1 Attaching to program: /home/uml/umlDev/linux, process 1 0x1009c001 in __kill () (gdb) b start_kernel Breakpoint 1 at 0x100d8f1b: file init/main.c, line 515. (gdb) c Continuing. Breakpoint 1, start_kernel () at init/main.c:515 515 printk(linux_banner); (gdb) c Continuing. Program received signal SIGINT, Interrupt. 0x1009bf76 in __sigprocmask (how=1, set=0x5f6bb878, oset=0x0) at ../sysdeps/unix/sysv/linux/sigprocmask.c:49 49 ../sysdeps/unix/sysv/linux/sigprocmask.c: No such file or directory. (gdb) backtrace #0 0x1009bf76 in __sigprocmask (how=1, set=0x5f6bb878, oset=0x0) at ../sysdeps/unix/sysv/linux/sigprocmask.c:49 #1 0x10091411 in change_sig (signal=10, on=1) at process.c:218 #2 0x10094785 in timer_handler (sig=26) at time_kern.c:32 #3 0x1009bf38 in __restore () at ../sysdeps/unix/sysv/linux/i386/sigaction.c:125 #4 0x1009534c in segv (address=0, ip=268872561, is_write=2, is_user=0) at trap_kern.c:66 #5 0x10095c04 in segv_handler (sig=11) at trap_user.c:285 #6 0x1009bf38 in __restore () at ../sysdeps/unix/sysv/linux/i386/sigaction.c:125 #7 0x10066c91 in dev_queue_xmit (skb=0x5fe152f0) at dev.c:908 #8 0x1007035e in ip_output (skb=0x5fe152f0) at ip_output.c:172 #9 0x1007071e in ip_queue_xmit (skb=0x5fe152f0) at ip_output.c:316 #10 0x1007c2ea in tcp_transmit_skb (sk=0x5f2bdcc0, skb=0x5fe152f0) at tcp_output.c:282 #11 0x1007c4bb in tcp_send_skb (sk=0x5f2bdcc0, skb=0x5ea30ca0, force_queue=0, cur_mss=1448) at tcp_output.c:321 #12 0x100740ec in tcp_sendmsg (sk=0x5f2bdcc0, msg=0x5f6bbda4, size=4110) at tcp.c:1091 #13 0x1008983a in inet_sendmsg (sock=0x5fd6548c, msg=0x5f6bbda4, size=4110, scm=0x5f6bbd74) at af_inet.c:748 #14 0x10062064 in sock_sendmsg (sock=0x5fd6548c, msg=0x5f6bbda4, size=4110) ---Type <return> to continue, or q <return> to quit--- at socket.c:508 #15 0x100622df in sock_readv_writev (type=0, inode=0x5fd653a0, file=0x5f5b0cc0, iov=0x5f6bbe30, count=2, size=4110) at socket.c:628 #16 0x1006235f in sock_writev (file=0x5f5b0cc0, vector=0x5f6bbe30, count=2, ppos=0x5f5b0ce0) at socket.c:649 #17 0x1001ff7c in do_readv_writev (type=0, file=0x5f5b0cc0, vector=0xbf7fd2fc, count=2) at read_write.c:232 #18 0x100200f2 in sys_writev (fd=3, vector=0xbf7fd2fc, count=2) at read_write.c:307 #19 0x10093d02 in execute_syscall (syscall=146, args=0x5f6bbef8) at syscall_kern.c:340 #20 0x100940f8 in syscall_handler (unused=0) at syscall_user.c:113 #21 0x100910ab in fork_handler (sig=10) at process.c:97 #22 0x1009bf38 in __restore () at ../sysdeps/unix/sysv/linux/i386/sigaction.c:125 (gdb) i sym 268872561 pfifo_fast_enqueue + 61 in section .text (gdb) i line *268872561 Line 462 of "/home/uml/shared/linux/include/linux/skbuff.h" starts at address 0x1006ab71 <pfifo_fast_enqueue+61> and ends at 0x1006ab73 <pfifo_fast_enqueue+63>. (gdb) - Matt |