diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index fd71b5d3852..ffa829436c2 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -1779,13 +1779,17 @@ unsigned CdbEngine::examineStopReason(const GdbMi &stopReason, const int threadId = stopReason.findChild("threadId").data().toInt(); if (reason == "breakpoint") { // Note: Internal breakpoints (run to line) are reported with id=0. + // Step out creates temporary breakpoints with id 10000. BreakpointId id = 0; int number = 0; const GdbMi breakpointIdG = stopReason.findChild("breakpointId"); if (breakpointIdG.isValid()) { id = breakpointIdG.data().toULongLong(); - if (id) + if (id && breakHandler()->engineBreakpointIds(this).contains(id)) { number = breakHandler()->response(id).number; + } else { + id = 0; + } } if (id && breakHandler()->type(id) == Watchpoint) { *message = msgWatchpointTriggered(id, number, breakHandler()->address(id), QString::number(threadId));