bug-ddd
[Top][All Lists]
Advanced

[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);

reply via email to

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