68 lines
1.9 KiB
Diff
68 lines
1.9 KiB
Diff
|
|
diff --git a/gdb/testsuite/gdb.python/py-typeprint.cc b/gdb/testsuite/gdb.python/py-typeprint.cc
|
||
|
|
--- a/gdb/testsuite/gdb.python/py-typeprint.cc
|
||
|
|
+++ b/gdb/testsuite/gdb.python/py-typeprint.cc
|
||
|
|
@@ -31,6 +31,12 @@ templ<basic_string> s;
|
||
|
|
|
||
|
|
basic_string bs;
|
||
|
|
|
||
|
|
+class Other
|
||
|
|
+{
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+Other ovar;
|
||
|
|
+
|
||
|
|
int main()
|
||
|
|
{
|
||
|
|
return 0;
|
||
|
|
diff --git a/gdb/testsuite/gdb.python/py-typeprint.exp b/gdb/testsuite/gdb.python/py-typeprint.exp
|
||
|
|
--- a/gdb/testsuite/gdb.python/py-typeprint.exp
|
||
|
|
+++ b/gdb/testsuite/gdb.python/py-typeprint.exp
|
||
|
|
@@ -50,3 +50,7 @@ gdb_test_no_output "enable type-printer string"
|
||
|
|
gdb_test "whatis bs" "string" "whatis with enabled printer"
|
||
|
|
|
||
|
|
gdb_test "whatis s" "templ<string>"
|
||
|
|
+
|
||
|
|
+gdb_test "info type-printers" "Type printers for \[^\r\n\]*/py-typeprint:\r\n *other\r\n.*" \
|
||
|
|
+ "info type-printers for other"
|
||
|
|
+gdb_test "whatis ovar" "type = Another"
|
||
|
|
diff --git a/gdb/testsuite/gdb.python/py-typeprint.py b/gdb/testsuite/gdb.python/py-typeprint.py
|
||
|
|
--- a/gdb/testsuite/gdb.python/py-typeprint.py
|
||
|
|
+++ b/gdb/testsuite/gdb.python/py-typeprint.py
|
||
|
|
@@ -15,7 +15,7 @@
|
||
|
|
|
||
|
|
import gdb
|
||
|
|
|
||
|
|
-class Recognizer(object):
|
||
|
|
+class StringRecognizer(object):
|
||
|
|
def __init__(self):
|
||
|
|
self.enabled = True
|
||
|
|
|
||
|
|
@@ -30,6 +30,26 @@ class StringTypePrinter(object):
|
||
|
|
self.enabled = True
|
||
|
|
|
||
|
|
def instantiate(self):
|
||
|
|
- return Recognizer()
|
||
|
|
+ return StringRecognizer()
|
||
|
|
|
||
|
|
gdb.type_printers.append(StringTypePrinter())
|
||
|
|
+
|
||
|
|
+class OtherRecognizer(object):
|
||
|
|
+ def __init__(self):
|
||
|
|
+ self.enabled = True
|
||
|
|
+
|
||
|
|
+ def recognize(self, type_obj):
|
||
|
|
+ if type_obj.tag == 'Other':
|
||
|
|
+ return 'Another'
|
||
|
|
+ return None
|
||
|
|
+
|
||
|
|
+class OtherTypePrinter(object):
|
||
|
|
+ def __init__(self):
|
||
|
|
+ self.name = 'other'
|
||
|
|
+ self.enabled = True
|
||
|
|
+
|
||
|
|
+ def instantiate(self):
|
||
|
|
+ return OtherRecognizer()
|
||
|
|
+
|
||
|
|
+import gdb.types
|
||
|
|
+gdb.types.register_type_printer(gdb.objfiles()[0], OtherTypePrinter())
|