bugDDD - Bugs: bug #28940, Multible breakpoints on the same...

 
 

bug #28940: Multible breakpoints on the same address

Submitted by:  Dancie Reeves <dancie>
Submitted on:  Sat Feb 20 12:19:10 2010  
Votes:  100  
 
Category: NoneSeverity: 3 - Normal
Item Group: NoneStatus: None
Privacy: PublicAssigned to: None
Open/Closed: OpenRelease: None

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Thu Mar 10 17:21:00 2011, comment #2:

Active in 3.3.11 on Ubuntu 10.04.

John Boncek <johnboncek>
Fri Feb 26 22:25:00 2010, comment #1:

Don't use this. I did a better fix. See my comm-manag-250210.patch.
It was a better kludge and fixed many more problems.

Dancie Reeves <dancie>
Project Member
Sat Feb 20 12:19:10 2010, original submission:

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

Dancie Reeves <dancie>
Project Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by johnboncek (Posted a comment)
  • -unavailable- added by johnboncek
  • -unavailable- added by johnboncek (Voted in favor of this item)
  • -unavailable- added by dancie (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 100 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu Mar 10 17:21:00 2011johnboncekCarbon-Copy-=>Added -unavailable-
      Carbon-Copy-=>Added johnboncek

    Back to the top


    Powered by Savane 3.1-cleanup