summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/debugger/cdb/cdbengine.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp
index 4e7e2e90b7..cd8de514b5 100644
--- a/src/plugins/debugger/cdb/cdbengine.cpp
+++ b/src/plugins/debugger/cdb/cdbengine.cpp
@@ -544,9 +544,6 @@ bool CdbEngine::launchCDB(const DebuggerRunParameters &sp, QString *errorMessage
if (boolSetting(IgnoreFirstChanceAccessViolation))
arguments << QLatin1String("-x");
- const QStringList &symbolPaths = stringListSetting(CdbSymbolPaths);
- if (!symbolPaths.isEmpty())
- arguments << QLatin1String("-y") << symbolPaths.join(QLatin1Char(';'));
const QStringList &sourcePaths = stringListSetting(CdbSourcePaths);
if (!sourcePaths.isEmpty())
arguments << QLatin1String("-srcpath") << sourcePaths.join(QLatin1Char(';'));
@@ -642,6 +639,18 @@ void CdbEngine::setupInferior()
runCommand({cdbAddBreakpointCommand(bp, m_sourcePathMappings, id, true), BuiltinCommand,
[this, id](const DebuggerResponse &r) { handleBreakInsert(r, id); }});
}
+
+ // setting up symbol search path
+ QStringList symbolPaths = stringListSetting(CdbSymbolPaths);
+ const QProcessEnvironment &env = QProcessEnvironment::systemEnvironment();
+ QString symbolPath = env.value(QLatin1String("_NT_ALT_SYMBOL_PATH"));
+ if (!symbolPath.isEmpty())
+ symbolPaths += symbolPath;
+ symbolPath = env.value(QLatin1String("_NT_SYMBOL_PATH"));
+ if (!symbolPath.isEmpty())
+ symbolPaths += symbolPath;
+ runCommand({".sympath \"" + symbolPaths.join(QLatin1Char(';')).toLatin1() + '"', NoFlags});
+
runCommand({"!sym noisy", NoFlags}); // Show symbol load information.
runCommand({"sxn 0x4000001f", NoFlags}); // Do not break on WowX86 exceptions.
runCommand({"sxn ibp", NoFlags}); // Do not break on initial breakpoints.