From 9e16554e250956df642f9d84f9cc10ea8abe5c04 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 19 Jan 2016 14:11:04 +0100 Subject: [PATCH] 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 --- share/qtcreator/debugger/lldbbridge.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 6dbed12cc01..0570533dc63 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -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):