From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HgjvE-0002ed-EX for qemu-devel@nongnu.org; Wed, 25 Apr 2007 12:00:48 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HgjvD-0002eE-ST for qemu-devel@nongnu.org; Wed, 25 Apr 2007 12:00:47 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HgjvB-0002e4-2H for qemu-devel@nongnu.org; Wed, 25 Apr 2007 12:00:46 -0400 Received: from nz-out-0506.google.com ([64.233.162.235]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HgjpX-0001xA-2U for qemu-devel@nongnu.org; Wed, 25 Apr 2007 11:54:55 -0400 Received: by nz-out-0506.google.com with SMTP id i11so765359nzi for ; Wed, 25 Apr 2007 08:54:54 -0700 (PDT) Message-ID: <5d649bdb0704250854w3b7f413jae5241e9d229011e@mail.gmail.com> Date: Wed, 25 Apr 2007 10:54:54 -0500 From: "Neo Jia" In-Reply-To: <462EF6D5.1040504@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <5d649bdb0704241811s301aa41bg2a93b8b4c923b023@mail.gmail.com> <462EEF7A.5040708@web.de> <5d649bdb0704242329x587bbfc4qe9feefd037e24f60@mail.gmail.com> <462EF6D5.1040504@web.de> Subject: [Qemu-devel] Re: How to debug Linux kernel on qemu with kgdb? Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: qemu-devel@nongnu.org On 4/25/07, Jan Kiszka wrote: > Neo Jia wrote: > > On 4/25/07, Jan Kiszka wrote: > >> Neo Jia wrote: > >> > hi, > >> > > >> > I am trying to use debug kgdb patched linux kernel on my qemu. Both > >> > the native and target platform are IA32. I am wondering if there is > >> > anyone can show me the procedure? > >> > >> Yep, see https://mail.gna.org/public/xenomai-core/2006-09/msg00202.html > >> > >> (BTW, I think that kgdb bug is still unfixed - I never got a feedback.) > > > > I can connect gdb through /dev/pts/XX. My qemu is lanuched by > > > > qemu -nographic -hda linux.img -kernel > > ./2.6.15.5-kgdb/vmlinuz-2.6.15.5-kgdb -serial pty -append "kgdbwait > > console=ttyS0 root=/dev/hda sb=0x220,5,1,5 ide2=noprobe ide3=noprobe > > ide4=noprobe ide5=noprobe" > > > > Do you know where can I get the console output? > > > > Use "... -serial stdio -serial pty ..." and attached kgdb to the second > serial port (I think to recall that is default anyway). The first one is > then used for the kernel console. > > > I would like to work out kgdb + qemu to debug linux kernel. > > ??? So you really want to debug the kernel when kgdb is applied, ie. > actually debug kgdb? If you only intend to debug the kernel itself, qemu > -s + gdb is enough. Jan, I just would like to debug kernel itself. I have tried qemu -s + gdb but it keeps getting "apic_timer_interrupt" when I am using "n" command. The following is the output: > gdb vmlinux GNU gdb 6.5.50.20060621-cvs Copyright (C) 2006 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"...Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) target remote localhost:1234 Remote debugging using localhost:1234 0x0000fff0 in ?? () warning: shared library handler failed to enable breakpoint (gdb) c Continuing. Program received signal SIGINT, Interrupt. default_idle () at include/asm/bitops.h:252 252 return ((1UL << (nr & 31)) & (addr[nr >> 5])) != 0; (gdb) b sys_ex sys_execve sys_exit sys_exit_group (gdb) b sys_execve Breakpoint 1 at 0xc0101ac1: file arch/i386/kernel/process.c, line 791. (gdb) c Continuing. Breakpoint 1, sys_execve (regs= {ebx = 135197704, ecx = 135197864, edx = 135244936, esi = 135197704, edi = 135197704, ebp = -1079176984, eax = 11, xds = 123, xes = 123, orig_eax = 11, eip = -1208835017, xcs = 115, eflags = 582, esp = -1079177012, xss = 123}) at arch/i386/kernel/process.c:791 791 filename = getname((char __user *) regs.ebx); (gdb) n 0xc0103666 in apic_timer_interrupt () at include/asm/current.h:9 9 { (gdb) quit Thanks, Neo > > Jan > > > -- I would remember that if researchers were not ambitious probably today we haven't the technology we are using!