On 2012-08-22 01:53, Onkar wrote: > I am running a linux guest like this - which I wish to debug - > but the breakpoint gets set but I am not able to stop the guest > execution at the set breakpoint - it just hangs after I do continue. > Can you please provide me some clues - > > # ./qemu-system-x86_64 -m 2048 -smp 4 -vga std -vnc :5 -drive > file=/sda4/bin/disk/disk0.img,cache=writeback -S -s > > # gdb > GNU gdb (GDB) Fedora (7.2-52.fc14) > Copyright (C) 2010 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show > copying" > and "show warranty" for details. > This GDB was configured as "x86_64-redhat-linux-gnu". > For bug reporting instructions, please see: > <http://www.gnu.org/software/gdb/bugs/>. > The target architecture is assumed to be i386:x86-64:intel > (gdb) symbol-file /sda4/kvm/vmlinux > Reading symbols from /sda4/kvm/vmlinux...done. > (gdb) target remote :1234 > Remote debugging using :1234 > 0x0000000000000000 in ?? () > (gdb) b kmem_cache_alloc > Breakpoint 1 at 0xffffffff81121adb: file mm/slub.c, line 2375. (2 > locations) > (gdb) c > Continuing.
In KVM mode, soft-breakpoints can only be set when the kernel is already loaded. The reason is that it injects a trap instruction in the guest code, and that instruction will be overwritten during boot. Use a hardware breakpoint instead, or interrupt the guest before the interesting code is executed but after the kernel is loaded. Jan -- Siemens AG, Corporate Technology, CT RTC ITP SDP-DE Corporate Competence Center Embedded Linux