Debugger[CDB]: Refactor breakpoint handling.

Add a command to list breakpoints enabling id access.
Implemented breakpoint handling similar to gdb using breakpoint
ids (no longer delete and re-set all breakpoints on a change).
Save the module that is reported back in the session so that
it can be re-used for the next start. Keep a per-debugger-session
cache of fileName->Module for adding breakpoints to accelerate
setting breakpoints in the same file.
Polish the breakpoint tooltip.
This commit is contained in:
Friedemann Kleint
2011-02-03 16:26:23 +01:00
parent d5a33d2860
commit 91ead6c818
12 changed files with 327 additions and 142 deletions

View File

@@ -198,17 +198,6 @@ void ExtensionContext::notifyIdleCommand(CIDebugClient *client)
} else {
str << ",stack=" << stackInfo;
}
// Report breakpoints
const StopReasonMap::const_iterator rit = stopReasons.find(stopReasonKeyC);
if (rit != stopReasons.end() && rit->second == breakPointStopReasonC) {
const std::string breakpoints = gdbmiBreakpoints(exc.control(), exc.symbols(),
false, false, &errorMessage);
if (breakpoints.empty()) {
str << ",breakpointserror=" << gdbmiStringFormat(errorMessage);
} else {
str << ",breakpoints=" << breakpoints;
}
}
str << '}';
reportLong('E', 0, "session_idle", str.str());
}