diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 0d95b216deab5f6f65a4b6d75f6120f3a4c3646e..c0aa3ecd93a6adc8c8b28b5ac18941df1536fd5b 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -1246,7 +1246,9 @@ void GdbEngine::handleStopResponse(const GdbMi &data)
                        || m_debuggingHelperState == DebuggingHelperLoadTried;
     // Don't load helpers on stops triggered by signals unless it's
     // an intentional trap.
-    if (initHelpers && reason == "signal-received"
+    if (initHelpers
+            && m_gdbAdapter->dumperHandling() != AbstractGdbAdapter::DumperLoadedByGdbPreload
+            && reason == "signal-received"
             && data.findChild("signal-name").data() != "SIGTRAP")
         initHelpers = false;
     if (isSynchroneous())