diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index ee415d667e5ac0e195bab5df68f02427cb6db409..0a5d7d7af63c770417989914a19e937b80444247 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -3583,7 +3583,8 @@ void GdbEngine::handleFetchDisassemblerByLine(const GdbResponse &response)
     } else {
         // 536^error,msg="mi_cmd_disassemble: Invalid line number"
         QByteArray msg = response.data.findChild("msg").data();
-        if (msg == "mi_cmd_disassemble: Invalid line number")
+        if (msg == "mi_cmd_disassemble: Invalid line number" 
+                || msg.startsWith("Cannot access memory at address"))
             fetchDisassemblerByAddress(ac.agent, true);
         else
             showStatusMessage(tr("Disassembler failed: %1").arg(QString::fromLocal8Bit(msg)), 5000);