bpItem = null;
bp.inserted = (bp.bp && bp.bp.number != 0);
bp.hits = 0;
+ bp.breaks = 0;
ValidateBreakpoint(bp);
}
else
case runToCursor:
if(bp.condition)
conditionMet = ResolveWatch(bp.condition);
- if(conditionMet && (bp.level == -1 || bp.level == frameCount))
+ bp.hits++;
+ if((bp.level == -1 || bp.level == frameCount-1) && conditionMet)
{
- bp.hits++;
- ide.breakpointsView.UpdateBreakpoint(bp.row);
- if(bp.hits > bp.ignore)
+ if(!bp.ignore)
{
+ bp.breaks++;
ignoreBreakpoints = false;
// Why was SelectFrame missing here?
SelectFrame(activeFrameLevel);
}
else
{
- /*bp.ignore--;
- ide.breakpointsView.UpdateBreakpoint(bp.row);*/
+ bp.ignore--;
GdbExecContinue(false);
}
}
else
GdbExecContinue(false);
+ ide.breakpointsView.UpdateBreakpoint(bp.row);
break;
}
}
int line;
bool enabled;
int hits;
+ int breaks;
int ignore;
int level;
Watch condition;
TrimRSpaces(string, string);
value = atoi(string);
}
+ else if(listBox.currentField == levelField)
+ value = -1;
//str[0] = '\0';
//sprintf(str, "%d", value);
//listBox.StopEditing(true);
}
};
- DataField locationField { "char *", true, width = 180, header = $"Location" };
- DataField hitsField { "int", false, width = 72, header = $"Hits" };
- DataField ignoreField { "char *", true, width = 72, header = $"Ignore Count" };
- DataField levelField { "char *", true, width = 50, header = $"Hit Level" };
- DataField conditionField { "char *", true, width = 130, header = $"Condition" };
+ // TODO: set field size based on font and i18n header string
+ // TODO: save column widths to ide settings
+ DataField locationField { "char *", true , width = 220, header = $"Location" };
+ DataField hitsField { "int" , false, width = 28, header = $"Hits" };
+ DataField breaksField { "int" , false, width = 46, header = $"Breaks" };
+ DataField ignoreField { "char *", true , width = 80, header = $"Ignore Count" };
+ DataField levelField { "char *", true , width = 74, header = $"Stack Depth" };
+ DataField conditionField { "char *", true , width = 130, header = $"Condition" };
BreakpointsView()
{
listBox.AddField(locationField);
listBox.AddField(hitsField);
+ listBox.AddField(breaksField);
listBox.AddField(ignoreField);
listBox.AddField(levelField);
listBox.AddField(conditionField);
location = bp.LocationToString();
row.SetData(locationField, location);
delete location;
- sprintf(string, "%d", bp.ignore);
+ if(bp.ignore == 0)
+ string[0] = '\0';
+ else
+ sprintf(string, "%d", bp.ignore);
row.SetData(ignoreField, string);
if(bp.level == -1)
string[0] = '\0';
else
row.SetData(conditionField, null);
row.SetData(hitsField, bp.hits);
+ row.SetData(breaksField, bp.breaks);
}
}