sendCommand("-exec-arguments " + q->m_processArgs.join(" "));
#ifndef Q_OS_MAC
sendCommand("set auto-solib-add off");
- #endif
sendCommand("info target", GdbStart);
+ #else
+ // On MacOS, breaking in at the entry point wreaks havoc.
+ sendCommand("tbreak main");
+ m_waitingForFirstBreakpointToBeHit = true;
+ qq->notifyInferiorRunningRequested();
+ sendCommand("-exec-run");
+ #endif
}
// set all to "pending"
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");
- }
+ Q_UNUSED(response);
#else
+ if (response.resultClass == GdbResultDone) {
// [some leading stdout here]
// stdout:&" Entry point: 0x80831f0 0x08048134 - 0x08048147 is .interp\n"
// [some trailing stdout here]
} else {
debugMessage("PARSING START ADDRESS FAILED: " + msg);
}
-#endif
} else if (response.resultClass == GdbResultError) {
debugMessage("FETCHING START ADDRESS FAILED: " + response.toString());
}
+#endif
}
void GdbEngine::handleAttach()