--- a/python/vdb.py Wed Nov 18 07:08:41 2020 +0000
+++ b/python/vdb.py Tue Nov 17 22:02:29 2020 +0000
@@ -22,7 +22,7 @@
self._value = value
def to_string(self):
- return self._value
+ return str(self._value)
class _VarObjRegistry(object):
@@ -223,6 +223,27 @@
"""
return self._expr
+
+def contents_visualizer(value):
+ """
+ Find and return the "contents" visualizer for a gdb.Value.
+ If value's `gdb.default_visualizer` defines a property
+ `contents_visualizer`, property value is used as a factory
+ function to create contents visualizer. Otherwise, a
+ `gdb.default_visualizer()` is returned.
+
+ This is to be used by UI to implement "Inspect" on
+ variables.
+ """
+ default_visualizer = gdb.default_visualizer(value)
+ if default_visualizer != None:
+ if hasattr(default_visualizer, "contents_visualizer"):
+ return default_visualizer.contents_visualizer(value)
+ else:
+ return default_visualizer
+ else:
+ return BasicPrinter(value)
+
_VarEvaluators = []
def register_evaluator(callable, replace = True):
@@ -399,4 +420,4 @@
# Set prompt for both, GDBCLI and Python CLI
gdb.prompt_hook = lambda x: 'vdb > '
sys.ps1 = 'vdb pi > '
-sys.ps2 = ' > '
\ No newline at end of file
+sys.ps2 = ' > '