diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp index 151b269c7e7d5f716e331f72d0713d1ed6297765..d6396563aee0e16757961a02b5459cdc6bfe3628 100644 --- a/src/plugins/debugger/gdbengine.cpp +++ b/src/plugins/debugger/gdbengine.cpp @@ -1688,6 +1688,17 @@ void GdbEngine::continueInferior() void GdbEngine::handleStart(const GdbResultRecord &response) { if (response.resultClass == GdbResultDone) { +#ifdef Q_OS_MAC + QString addr = response.data.findChild("section-info").findChild("entry-point").data(); + if (!addr.isEmpty()) { + sendCommand("tbreak *" + addr); + m_waitingForFirstBreakpointToBeHit = true; + qq->notifyInferiorRunningRequested(); + sendCommand("-exec-run"); + } else { + debugMessage("CANNOT OBTAIN START ADDRESS"); + } +#else // [some leading stdout here] // stdout:&" Entry point: 0x80831f0 0x08048134 - 0x08048147 is .interp\n" // [some trailing stdout here] @@ -1702,6 +1713,7 @@ void GdbEngine::handleStart(const GdbResultRecord &response) } else { debugMessage("PARSING START ADDRESS FAILED: " + msg); } +#endif } else if (response.resultClass == GdbResultError) { debugMessage("FETCHING START ADDRESS FAILED: " + response.toString()); }