diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 3a1d9fe019ab32fa57de9ce803a31d8ed88317b6..48e2d2e559b9f1c05bcbdce75fa648dc8e3448c6 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -1475,7 +1475,7 @@ AbstractGdbAdapter *GdbEngine::determineAdapter(const DebuggerStartParametersPtr
         break;
     }
     // @todo: remove testing hack
-    if (sp->executable.endsWith(_(".sym")))
+    if (sp->processArgs.at(0) == _("@sym@"))
         return m_trkAdapter;
     switch (sp->startMode) {
     case AttachCore:
diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp
index e9518469c3c56b3bc6d93e2f58f3f55a0af0ca0a..a49fe31f3455ea6d227cd0c6b2ca0887e98b7900 100644
--- a/src/plugins/debugger/gdb/trkgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp
@@ -1424,9 +1424,9 @@ void TrkGdbAdapter::startAdapter()
     m_remoteExecutable = parameters.executable;
     m_symbolFile = parameters.symbolFileName;
     // FIXME: testing hack, remove!
-    if (m_remoteExecutable.endsWith(_(".sym"))) {
-        m_symbolFile = m_remoteExecutable;
-        m_remoteExecutable = parameters.processArgs.join(_(" "));
+    if (parameters.processArgs.at(0) == _("@sym@")) {
+        m_remoteExecutable = parameters.processArgs.at(1);
+        m_symbolFile = parameters.processArgs.at(2);
     }
     // Start
     QTC_ASSERT(state() == EngineStarting, qDebug() << state());