From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Ju1Uu-0007Em-Gb for qemu-devel@nongnu.org; Thu, 08 May 2008 04:29:05 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Ju1Ut-0007EL-Kp for qemu-devel@nongnu.org; Thu, 08 May 2008 04:29:03 -0400 Received: from [199.232.76.173] (port=50089 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ju1Ut-0007EE-Ax for qemu-devel@nongnu.org; Thu, 08 May 2008 04:29:03 -0400 Received: from lizzard.sbs.de ([194.138.37.39]:18916) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Ju1Us-00013Q-V9 for qemu-devel@nongnu.org; Thu, 08 May 2008 04:29:03 -0400 Received: from mail1.sbs.de (localhost [127.0.0.1]) by lizzard.sbs.de (8.12.11.20060308/8.12.11) with ESMTP id m488SsEM016929 for ; Thu, 8 May 2008 10:28:54 +0200 Received: from [139.25.109.167] (mchn012c.ww002.siemens.net [139.25.109.167] (may be forged)) by mail1.sbs.de (8.12.6/8.12.6) with ESMTP id m488SpFg011123 for ; Thu, 8 May 2008 10:28:54 +0200 Message-ID: <4822B9C3.4070808@siemens.com> Date: Thu, 08 May 2008 10:28:51 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <824D057211107844BA95DB341B4BF12E01139BF2@hanvsmail04.eu.thmulti.com> In-Reply-To: <824D057211107844BA95DB341B4BF12E01139BF2@hanvsmail04.eu.thmulti.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.. Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Keilhau Timo ( Student ) wrote: > Hello List! > > I am trying to debug linux 2.6.25 kernel with qemu -s and gdb on 64 bit > amd system. > But I am experiencing strange behaviour with qemu and gdb.. > Gdb stops at a given breakpoint but I cant step, next, print etc.. > > Software: > Host OS used: opensuse 10.3 > Host kernelversion: 2.6.22.5-31-default > guest: Debian Etch 4.0r3 amd64 with 2.6.25 > The kernel used to debug: linux-2.6.25.tar.bz2 > Virtualization Software: qemu pc emulator version 0.9.0 > Host make utillity GNU Make 3.81 > Host debugger: GNU gdb 6.6.50.20070726-cvs > (Also tried gdb 6.6, gdb 6.8 compiled from source) > > Look here: > > // Starting qemu on host: > > $ qemu-system-x86_64 -s -kernel bzImage -hda > qemu_mini_debian_root_fs.img -append "root=/dev/hda1" -initrd > debian_boot/initrd.img-2.6.25-customtk-i -no-kqemu -redir > tcp:10022:10.0.2.15:22 > > // Boots fine. > // vmlinux is compiled with CFLAGS=-g3 -ggdb, I have also tried only > with -g > // On host: > > $ nm vmlinux | grep sys_sendmsg > ffffffff803e9ac5 T sys_sendmsg > > > // Starting gdb on host and setting a breakpoint: > > $ gdb vmlinux > > GNU gdb 6.6.50.20070726-cvs > Copyright (C) 2007 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 "x86_64-suse-linux"... > Using host libthread_db library "/lib64/libthread_db.so.1". > (gdb) l sys_sendmsg > 1783 /* > 1784 * BSD sendmsg interface > 1785 */ > 1786 > 1787 asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, > unsigned flags) > 1788 { > 1789 struct compat_msghdr __user *msg_compat = > 1790 (struct compat_msghdr __user *)msg; > 1791 struct socket *sock; > 1792 char address[MAX_SOCK_ADDR]; > (gdb) b 1787 > Breakpoint 1 at 0xffffffff803e9ac5: file net/socket.c, line 1787. > (gdb) > > // Now connect to qemu's gdb-stub: > > (gdb) target remote :1234 > Remote debugging using :1234 > 0x0000000000000000 in ?? () > (gdb) c > Continuing. > > // On guest launching a ping for example, to trigger the breakpoint: > > $ ping 212.76.144.43 > > // On Host gdb stops, but it looks strange no address info etc is > shown?!?! > > Program received signal SIGTRAP, Trace/breakpoint trap. > 0x0000000000000000 in ?? () Make sure gdb is assuming the right arch at this point (=> set arch i386:x86-64). If you initially break into the guest when it is still in real mode, gdb stays in i386 mode even if the guest's mode changes. Jan