summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2014-11-13 15:15:11 +0100
committerhjk <hjk121@nokiamail.com>2014-11-14 13:38:07 +0100
commit7066e3348d66f201b7aafac67e5b7be9d83fbf58 (patch)
treeb7822f5fcca99c2679333d376fa2bd6e91c0c63a /share
parentbc65b6b119ff004499d7467e672861eea92dd792 (diff)
downloadqt-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.py36
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: