This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Cannot insert breakpoint -1.
- From: "Anmol P. Paralkar" <anmol at freescale dot com>
- To: gdb at sourceware dot org
- Date: Fri, 24 Jul 2009 16:12:08 -0500 (CDT)
- Subject: Cannot insert breakpoint -1.
Hello,
Is there a reason why GDB will try to set a breakpoint (breakpoint number: -1) at
the entry point address on a 'c', after a 'target remote'? (I am using a GDB stub
at the remote end that resides in a hypervisor upon which guest OS'es run).
I am using gdb-6.8.50.20090717; but, I suppose that this is general GDB behaviour.
--------------------------------------------------------------------------------
(gdb) target remote :12007
Remote debugging using :12007
warning: Loadable segment "cpu0_heap_stack" outside of ELF segments
warning: Loadable segment "cpu1_heap_stack" outside of ELF segments
warning: Loadable segment "cpu2_heap_stack" outside of ELF segments
warning: Loadable segment "cpu3_heap_stack" outside of ELF segments
warning: Loadable segment "cpu4_heap_stack" outside of ELF segments
warning: Loadable segment "cpu5_heap_stack" outside of ELF segments
warning: Loadable segment "cpu6_heap_stack" outside of ELF segments
warning: Loadable segment ".stats_heap" outside of ELF segments
warning: Loadable segment ".dpa_mem" outside of ELF segments
0x0013c880 in ?? ()
(gdb) p $pc
$1 = (void (*)()) 0x13c880
(gdb) c
Continuing.
Warning:
Cannot insert breakpoint -1.
Error accessing memory address 0x110000: Unknown error 18446744073709551615.
--------------------------------------------------------------------------------
(The entry point is likely not mapped into the TLB at that stage and so it is
really a visible problem, else it just does this silently without it getting
any attention).
I tried to work around the issue by using set remote-<name>-packet, where <name>
equalled software-breakpoint - but that does not work (it did not send a Z0, but
sent an X packet instead (verified with an earlier GDB compiled with tracing on)):
--------------------------------------------------------------------------------
(gdb) c
Continuing.
^C
Program received signal SIGTRAP, Trace/breakpoint trap.
0x0013c888 in ?? ()
(gdb) c
Continuing.
Warning:
Cannot insert breakpoint -1.
Error accessing memory address 0x110000: Input/output error.
--------------------------------------------------------------------------------
I then also re-tried with <name> equal to binary-download - but that does not work
(it did not send the X, but sent an M packet instead):
--------------------------------------------------------------------------------
(gdb) c
Continuing.
^C
Program received signal SIGTRAP, Trace/breakpoint trap.
Cannot remove breakpoints because program is no longer writable.
Further execution is probably impossible.
0x0013c880 in ?? ()
(gdb)
--------------------------------------------------------------------------------
Please could someone kindly shed light on this GDB behaviour?
Thank you.
Anmol.