forked from qt-creator/qt-creator
Debugger: Fix use of external debug info for installer-based Qt
On Linux. Required installs are the gcc-built Qt libraries themselves, the "Sources" and "Qt Debug Information Files" components. Fixes: QTCREATORBUG-20693 Change-Id: I920efd641ce3ee4583741ea1db0bea18031adc51 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -994,8 +994,21 @@ class Dumper(DumperBase):
|
||||
qtCoreMatch = re.match('.*/libQt5?Core[^/.]*\.so', name)
|
||||
|
||||
if qtCoreMatch is not None:
|
||||
self.addDebugLibs(objfile)
|
||||
self.handleQtCoreLoaded(objfile)
|
||||
|
||||
def addDebugLibs(self, objfile):
|
||||
# The directory where separate debug symbols are searched for
|
||||
# is "/usr/lib/debug".
|
||||
try:
|
||||
cooked = gdb.execute('show debug-file-directory', to_string=True)
|
||||
clean = cooked.split('"')[1]
|
||||
newdir = '/'.join(objfile.filename.split('/')[:-1])
|
||||
gdb.execute('set debug-file-directory %s:%s' % (clean, newdir))
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
def handleQtCoreLoaded(self, objfile):
|
||||
fd, tmppath = tempfile.mkstemp()
|
||||
os.close(fd)
|
||||
|
@@ -62,7 +62,7 @@ QStringList qtBuildPaths()
|
||||
"c:/users/qt/work/qt",
|
||||
"c:/Users/qt/work/install"};
|
||||
} else {
|
||||
return {};
|
||||
return { "/home/qt/work/qt" };
|
||||
}
|
||||
}
|
||||
|
||||
@@ -450,7 +450,7 @@ DebuggerSourcePathMappingWidget::SourcePathMap
|
||||
SourcePathMap rc = in;
|
||||
for (const QString &buildPath : qtBuildPaths()) {
|
||||
if (!rc.contains(buildPath)) // Do not overwrite user settings.
|
||||
rc.insert(buildPath, qtInstallPath);
|
||||
rc.insert(buildPath, qtInstallPath + "/../Src");
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
Reference in New Issue
Block a user