forked from qt-creator/qt-creator
Debugger: adjust resetting the symbol server after cdb update
The cdb symbol server can currently only be cleared by setting the symbol path via .sympath command and an empty string. Change-Id: I013b106856d87dbc2de0fdcaa876fd6d9378fb63 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -394,14 +394,7 @@ void CdbEngine::setupEngine()
|
|||||||
if (!sourcePaths.isEmpty())
|
if (!sourcePaths.isEmpty())
|
||||||
debugger.addArgs({"-srcpath", sourcePaths.join(';')});
|
debugger.addArgs({"-srcpath", sourcePaths.join(';')});
|
||||||
|
|
||||||
QStringList symbolPaths = stringListSetting(CdbSymbolPaths);
|
debugger.addArgs({"-y", QChar('"') + stringListSetting(CdbSymbolPaths).join(';') + '"'});
|
||||||
QString symbolPath = sp.inferior.environment.expandedValueForKey("_NT_ALT_SYMBOL_PATH");
|
|
||||||
if (!symbolPath.isEmpty())
|
|
||||||
symbolPaths += symbolPath;
|
|
||||||
symbolPath = sp.inferior.environment.expandedValueForKey("_NT_SYMBOL_PATH");
|
|
||||||
if (!symbolPath.isEmpty())
|
|
||||||
symbolPaths += symbolPath;
|
|
||||||
debugger.addArgs({"-y", symbolPaths.join(';')});
|
|
||||||
|
|
||||||
switch (sp.startMode) {
|
switch (sp.startMode) {
|
||||||
case StartInternal:
|
case StartInternal:
|
||||||
@@ -501,6 +494,16 @@ void CdbEngine::handleInitialSessionIdle()
|
|||||||
}
|
}
|
||||||
// Take ownership of the breakpoint. Requests insertion. TODO: Cpp only?
|
// Take ownership of the breakpoint. Requests insertion. TODO: Cpp only?
|
||||||
BreakpointManager::claimBreakpointsForEngine(this);
|
BreakpointManager::claimBreakpointsForEngine(this);
|
||||||
|
|
||||||
|
QStringList symbolPaths = stringListSetting(CdbSymbolPaths);
|
||||||
|
QString symbolPath = rp.inferior.environment.expandedValueForKey("_NT_ALT_SYMBOL_PATH");
|
||||||
|
if (!symbolPath.isEmpty())
|
||||||
|
symbolPaths += symbolPath;
|
||||||
|
symbolPath = rp.inferior.environment.expandedValueForKey("_NT_SYMBOL_PATH");
|
||||||
|
if (!symbolPath.isEmpty())
|
||||||
|
symbolPaths += symbolPath;
|
||||||
|
|
||||||
|
runCommand({QString(".sympath \"") + symbolPaths.join(';') + '"'});
|
||||||
runCommand({".symopt+0x8000"}); // disable searching public symbol table - improving the symbol lookup speed
|
runCommand({".symopt+0x8000"}); // disable searching public symbol table - improving the symbol lookup speed
|
||||||
runCommand({"sxn 0x4000001f", NoFlags}); // Do not break on WowX86 exceptions.
|
runCommand({"sxn 0x4000001f", NoFlags}); // Do not break on WowX86 exceptions.
|
||||||
runCommand({"sxn ibp", NoFlags}); // Do not break on initial breakpoints.
|
runCommand({"sxn ibp", NoFlags}); // Do not break on initial breakpoints.
|
||||||
|
|||||||
Reference in New Issue
Block a user