bug-ddd
[Top][All Lists]
Advanced

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

[bug #28940] Multible breakpoints on the same address


From: Dancie Reeves
Subject: [bug #28940] Multible breakpoints on the same address
Date: Sat, 20 Feb 2010 12:19:11 +0000
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100216 Fedora/3.5.8-1.fc12 Firefox/3.5.8

URL:
  <http://savannah.gnu.org/bugs/?28940>

                 Summary: Multible breakpoints on the same address
                 Project: DDD
            Submitted by: dancie
            Submitted on: Sat 20 Feb 2010 12:19:10 PM GMT
                Category: None
                Severity: 3 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
                 Release: None

    _______________________________________________________

Details:

Ever since I have worked with ddd if you saved a session with one breakpoint
the next time you open the session there would appear many breakpoints on the
same address, sometimes ddd would run out of glymps (red dots). This is an
annoying bug. I have written a kludge to remove the extras on startup but as
yet cannot find in the code where the breakpoints are loaded or saved to the
init file. Here is the kludge. about line 4200 in SourceView.C. Can anyone
give me a hint where the breakpoints are installed on the startup of a
session.

        else
        {
            // New breakpoint
                changed = true;
                BreakPoint *new_bp = 
                new BreakPoint(info_output, break_arg, bp_nr, file);
                bool isDouble = false;
                if(bp_nr > 1)
                {
                        for(int bno = 1; bno <= 
max_breakpoint_number_seen;bno++)
                        {
                                BreakPoint *bp = bp_map.get(bno);
                                if(bp != NULL)
                                {
                                        if((new_bp->line_nr() == bp->line_nr()) 
&& 
                                                (new_bp->type() == bp->type()))
                                        {
                                                isDouble = true;
                                                break;
                                        }
                                }
                        }
                }
                if(!isDouble)
                {
                        bp_map.insert(bp_nr, new_bp);
                        if (gdb->has_delete_command())
                        {
                                const string num = "@" + itostring(bp_nr) + "@";
                                undo_commands << gdb->delete_command(num) << 
'\n';
                        }
                        else
                        {
                                undo_commands << delete_command(bp_nr) << '\n';
                        }
                        if (!added)
                        {
                                added = true;
                                // Select this breakpoint only
                                MapRef ref;
                                for(BreakPoint* bp = bp_map.first(ref);
                                bp != 0;
                                bp = bp_map.next(ref))
                                {
                                        bp->selected() = false;
                                }
                        }
                        new_bp->selected() = true;
                }
                else
                {
                        delete_bp(bp_nr);
                        bp_nr = 0;
                }
        }
        max_breakpoint_number_seen = max(max_breakpoint_number_seen, bp_nr);
        }





    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?28940>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

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