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());
     }