[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
fails with hardware breakpoints
From: |
Nathan Sidwell |
Subject: |
fails with hardware breakpoints |
Date: |
Mon, 11 Apr 2005 11:12:03 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040913 |
Hi,
ddd's inferior debugger parsing assumes a certain capitalization for
'Breakpoint'. This fails with gdb and hardware breakpoints, where
the output is
Hardware assisted breakpoint 1 at 0x5000000c: file main.c, line 7.
Code in PosBuffer.c then starts thinking this is a vxworks debugger
output line, and looks for a file called '0x5000000c'.
The attached patch fixes the capitalization, by omitting the initial 'b'.
nathan
--
Nathan Sidwell :: http://www.codesourcery.com :: CodeSourcery LLC
nathan@codesourcery.com :: http://www.planetfall.pwp.blueyonder.co.uk
2005-04-11 Nathan Sidwell <nathan@codesourcery.com>
* PosBuffer.C (filter_gdb): Allow lowercase 'b' in 'breakpoint'.
(filter_pydb: Likewise.
*** ddd-3.3.10-orig/ddd/PosBuffer.C Mon Jun 7 12:52:53 2004
--- ddd-3.3.10/ddd/PosBuffer.C Mon Apr 11 11:05:34 2005
*************** void PosBuffer::filter_gdb(string& answe
*** 375,384 ****
{
// `Breakpoint N, ADDRESS in FUNCTION (ARGS...)'
#if RUNTIME_REGEX
! static regex rxstopped_addr("Breakpoint *[1-9][0-9]*, *"
RXADDRESS);
#endif
! int pc_index = index(answer, rxstopped_addr, "Breakpoint");
if (pc_index >= 0)
{
annotate("stopped");
--- 375,384 ----
{
// `Breakpoint N, ADDRESS in FUNCTION (ARGS...)'
#if RUNTIME_REGEX
! static regex rxstopped_addr("reakpoint *[1-9][0-9]*, *"
RXADDRESS);
#endif
! int pc_index = index(answer, rxstopped_addr, "reakpoint");
if (pc_index >= 0)
{
annotate("stopped");
*************** void PosBuffer::filter_gdb(string& answe
*** 465,473 ****
// `Breakpoint N, FUNCTION (ARGS...)'
// This regex used for PYDB as well.
#if RUNTIME_REGEX
! static regex rxstopped_func("Breakpoint *[1-9][0-9]*, *");
#endif
! int bp_index = index(answer, rxstopped_func, "Breakpoint");
if (bp_index >= 0)
fetch_function(answer, bp_index, func_buffer);
}
--- 465,473 ----
// `Breakpoint N, FUNCTION (ARGS...)'
// This regex used for PYDB as well.
#if RUNTIME_REGEX
! static regex rxstopped_func("reakpoint *[1-9][0-9]*, *");
#endif
! int bp_index = index(answer, rxstopped_func, "reakpoint");
if (bp_index >= 0)
fetch_function(answer, bp_index, func_buffer);
}
*************** void PosBuffer::filter_gdb(string& answe
*** 564,570 ****
// Try FUNCTION (ARGS...) at FILE:POS
// here to properly handle up/down commands
int at_index = answer.index(" at ");
! int br_index = answer.index("Break");
if ( (at_index > 0) && (br_index < 0) )
{
int nl_index =
--- 564,571 ----
// Try FUNCTION (ARGS...) at FILE:POS
// here to properly handle up/down commands
int at_index = answer.index(" at ");
! int br_index = answer.index("reakpoint");
!
if ( (at_index > 0) && (br_index < 0) )
{
int nl_index =
*************** void PosBuffer::filter_pydb(string& answ
*** 1116,1122 ****
// `Breakpoint N, FUNCTION (ARGS...) at file:line_no'
// rxstopped_func defined for GDB...if it changes, change here
! int fn_index = index(answer, rxstopped_func, "Breakpoint");
if (fn_index >= 0)
{
fetch_function(answer, fn_index, func_buffer);
--- 1117,1123 ----
// `Breakpoint N, FUNCTION (ARGS...) at file:line_no'
// rxstopped_func defined for GDB...if it changes, change here
! int fn_index = index(answer, rxstopped_func, "reakpoint");
if (fn_index >= 0)
{
fetch_function(answer, fn_index, func_buffer);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- fails with hardware breakpoints,
Nathan Sidwell <=