Debugger: Be a bit more robust with LLDB disassembler

LLDB 3.8 on Linux claims non-existent files to be the source of
disassembly.

Change-Id: I45a47cf5e7faad7ccd6dbb9879c8328fc2496b95
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
hjk
2016-01-19 14:11:04 +01:00
parent 0983c7cc1a
commit 9e16554e25

View File

@@ -1714,9 +1714,16 @@ class Dumper(DumperBase):
hunks[key] = hunk
source = sources.get(fileName, None)
if source is None:
with open(fileName, 'r') as f:
source = f.read().splitlines()
sources[fileName] = source
try:
with open(fileName, 'r') as f:
source = f.read().splitlines()
sources[fileName] = source
except IOError as error:
# With lldb-3.8 files like /data/dev/creator-3.6/tests/
# auto/debugger/qt_tst_dumpers_StdVector_bfNWZa/main.cpp
# with non-existent directories appear.
warn("FILE: %s ERROR: %s" % (fileName, error))
source = ""
result += '{line="%s"' % lineNumber
result += ',file="%s"' % fileName
if 0 < lineNumber and lineNumber <= len(source):