qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] target-ppc: gdbstub breakpoints get stuck in an infinite lo


From: Mark Cave-Ayland
Subject: [Qemu-devel] target-ppc: gdbstub breakpoints get stuck in an infinite loop on next/continue
Date: Fri, 21 Oct 2016 15:18:10 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.4.0

Hi all,

I've just noticed the above regression in git master whilst trying to
debug something in openbios-ppc via QEMU's gdbstub. Reproduction here is
fairly easy using a debug build of OpenBIOS which I've uploaded to
https://www.ilande.co.uk/tmp/qemu/openbios-qemu.elf.nostrip for people
to test against.

./qemu-system-ppc -bios openbios-qemu.elf.nostrip -s -S

The infinite loop can be seen by adding a breakpoint to the OpenBIOS
boot() function using gdb as below:

$ powerpc-linux-gdb obj-ppc/openbios-qemu.elf.nostrip
GNU gdb (GDB) 7.9.1
Copyright (C) 2015 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 "--host=x86_64-unknown-linux-gnu
--target=powerpc-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from obj-ppc/openbios-qemu.elf.nostrip...done.
(gdb) target remote :1234
Remote debugging using :1234

vector.0x100 () at
/home/build/src/openbios/openbios.git/openbios/arch/ppc/qemu/start.S:284
284             b       _entry

(gdb) b boot

Breakpoint 1 at 0xfff0bc00: file
/home/build/src/openbios/openbios.git/openbios/arch/ppc/qemu/main.c,
line 75.

(gdb) c
Continuing.

Program received signal SIGTRAP, Trace/breakpoint trap.
0xfff0bbfc in boot () at
/home/build/src/openbios/openbios.git/openbios/arch/ppc/qemu/main.c:74
74      {
(gdb) n

At this point the gdb session hangs whilst the GTK window title is
constantly switching between paused/unpaused.

A session with git bisect shows the bug was introduced with the
following commit:

bd6fefe71cec5a0c7d2be4ac96307f25db56abf9 is the first bad commit
commit bd6fefe71cec5a0c7d2be4ac96307f25db56abf9
Author: Benjamin Herrenschmidt <address@hidden>
Date:   Wed Jul 27 16:56:32 2016 +1000

    ppc: Make tlb_fill() use new exception helper

    Signed-off-by: Benjamin Herrenschmidt <address@hidden>
    Signed-off-by: David Gibson <address@hidden>

:040000 040000 3494b2d68eef71c8f7c7d4e57c5ff715146028b2
00849bf5889d8ee5b5ce633122b7aedf4a734372 M      linux-user
:040000 040000 32b1a8078a44c44e6bfd2184061b6da553cfc821
58afefec7a9fc5380fb408758a11dbe749010b97 M      target-ppc


ATB,

Mark.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]