diff options
author | hjk <hjk121@nokiamail.com> | 2014-11-13 15:15:11 +0100 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2014-11-14 13:38:07 +0100 |
commit | 7066e3348d66f201b7aafac67e5b7be9d83fbf58 (patch) | |
tree | b7822f5fcca99c2679333d376fa2bd6e91c0c63a /share | |
parent | bc65b6b119ff004499d7467e672861eea92dd792 (diff) | |
download | qt-creator-7066e3348d66f201b7aafac67e5b7be9d83fbf58.tar.gz |
Debugger: Improve tooltip for out-of-scope items with gdb
Previously, hovering over 'i' when stopped in main()
int foo() { int i; }
int main() {}
produced a tooltip without contents, now there is an
item saying "<not accessible>"
Change-Id: Id4de72541f74af93ba65c2a9508cf21e1dcd6569
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Diffstat (limited to 'share')
-rw-r--r-- | share/qtcreator/debugger/gdbbridge.py | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index a58b77357e..d16230907d 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -58,7 +58,7 @@ def registerCommand(name, func): Command() -def listOfLocals(varList): +def listOfLocals(): frame = gdb.selected_frame() try: @@ -444,30 +444,30 @@ class Dumper(DumperBase): # Locals # self.output.append('data=[') - locals = [] - fullUpdateNeeded = True - if self.partialUpdate and len(self.varList) == 1 and not self.tooltipOnly: + if self.partialUpdate and len(self.varList) == 1: #warn("PARTIAL: %s" % self.varList) parts = self.varList[0].split('.') #warn("PARTIAL PARTS: %s" % parts) name = parts[1] #warn("PARTIAL VAR: %s" % name) - #fullUpdateNeeded = False + item = LocalItem() + item.iname = parts[0] + '.' + name + item.name = name try: - frame = gdb.selected_frame() - item = LocalItem() - item.iname = "local." + name - item.name = name - item.value = frame.read_var(name) - locals = [item] - #warn("PARTIAL LOCALS: %s" % locals) - fullUpdateNeeded = False + if parts[0] == 'local': + frame = gdb.selected_frame() + item.value = frame.read_var(name) + else: + item.name = self.hexdecode(name) + item.value = gdb.parse_and_eval(item.name) + except RuntimeError as error: + item.value = error except: - pass - self.varList = [] - - if fullUpdateNeeded and not self.tooltipOnly: - locals = listOfLocals(self.varList) + item.value = "<no value>" + locals = [item] + #warn("PARTIAL LOCALS: %s" % locals) + else: + locals = listOfLocals() # Take care of the return value of the last function call. if len(self.resultVarName) > 0: |