[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Re: Debugging vmlinux with qemu and gdb. Unable to step
From: |
Jan Kiszka |
Subject: |
Re: [Qemu-devel] Re: Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.. |
Date: |
Thu, 08 May 2008 20:39:22 +0200 |
User-agent: |
Thunderbird 2.0.0.12 (X11/20080226) |
Keilhau Timo ( Student ) wrote:
>
>
>> -----Original Message-----
>> From:
>> address@hidden
>>
>> [mailto:address@hidden
> ngnu.org] On Behalf Of Jan Kiszka
>> Sent: Donnerstag, 8. Mai 2008 10:29
>> To: address@hidden
>> Subject: [Qemu-devel] Re: Debugging vmlinux with qemu and
>> gdb. Unable to step, next, print or to get any information..
>>
>> 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
>>
>
> Hello Jan,
> thanks for your reply!
> I've tried your suggestion with "set arch i386:x86-64"
> But it seems that it has no effect on this problem. But it was a good
> idea.
>
> Additionally I've tried all architectures just to see what happens.
>
> This is what ive done:
>
> (gdb) set architecture i386:x86-64
> The target architecture is assumed to be i386:x86-64
> (gdb) c
> Continuing.
>
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0x0000000000000000 in ?? ()
> (gdb) s
> Cannot find bounds of current function
> (gdb) n
> Cannot find bounds of current function
> (gdb) info locals
> No symbol table info available.
> (gdb) set architecture i386
> The target architecture is assumed to be i386
> (gdb) c
> Continuing.
>
> // <manual break here because gdb diddn't automatically>
>
> Program received signal SIGINT, Interrupt.
> 0x8020aed9 in ?? ()
> (gdb) p this
> No symbol "this" in current context.
> (gdb) info locals
> No symbol table info available.
> (gdb) l *0x8020aed9
> No source file for address 0x8020aed9.
> (gdb) p *0x8020aed9
> Cannot access memory at address 0x8020aed9
> (gdb) set architecture i386:intel
> The target architecture is assumed to be i386:intel
> (gdb) c
> Continuing.
>
> // <manual break here because gdb diddn't automatically>
>
> Program received signal SIGINT, Interrupt.
> 0x8020aed9 in ?? ()
> (gdb) p this
> No symbol "this" in current context.
> (gdb) info locals
> No symbol table info available.
> (gdb) s
> Cannot find bounds of current function
> (gdb) n
> Cannot find bounds of current function
> (gdb) l *0x8020aed9
> No source file for address 0x8020aed9.
> (gdb) set architecture i386:x86-64:intel
> The target architecture is assumed to be i386:x86-64:intel
> (gdb) c
> Continuing.
>
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0x0000000000000000 in ?? ()
> (gdb) info locals
> No symbol table info available.
> (gdb) n
> Cannot find bounds of current function
> (gdb) s
> Cannot find bounds of current function
> (gdb) p this
> No symbol "this" in current context.
> (gdb) set architecture i8086
> The target architecture is assumed to be i8086
> (gdb) c
> Continuing.
>
> // <manual break here because gdb diddn't automatically>
>
> Program received signal SIGINT, Interrupt.
> 0x8020aed9 in ?? ()
> (gdb) s
> Cannot find bounds of current function
> (gdb) n
> Cannot find bounds of current function
> (gdb) info locals
> No symbol table info available.
> (gdb) set architecture
> auto i386:intel i386:x86-64:intel
> i386 i386:x86-64 i8086
> (gdb) set architecture auto
> The target architecture is set automatically (currently i386:x86-64)
> (gdb)
>
> Any further ideas what is going / I'm doing wrong ?
Missed breakpoints most often mean that the executed image and the one
loaded by gdb do not match. Try comparing offline and runtime
disassemblies of the same locations.
Jan
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Keilhau Timo ( Student ), 2008/05/08
- [Qemu-devel] Re: Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Jan Kiszka, 2008/05/08
- Re: [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Mulyadi Santosa, 2008/05/08
- Re: [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Jason Wessel, 2008/05/09
- Re: [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Mulyadi Santosa, 2008/05/09
- Re: [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Jan Kiszka, 2008/05/09
- RE: [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Keilhau Timo ( Student ), 2008/05/09
- Re: [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Mulyadi Santosa, 2008/05/09
- Re: [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Edgar E. Iglesias, 2008/05/09
- Re: [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Daniel Jacobowitz, 2008/05/09
- Re: [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Jason Wessel, 2008/05/09
- Re: [Qemu-devel] Debugging vmlinux with qemu and gdb. Unable to step, next, print or to get any information.., Daniel Jacobowitz, 2008/05/09