a2f8e1d8c6
* negative repeat count for x examines backwards * fortran: support structs/arrays with dynamically types fields * support MPX bound checking * support for the Rust language * 'catch syscall' now can catch groups of related syscalls * New (sub)commands: - skip {-file,-gfile,-function,-rfunction}: generic skip mechanism - maint {selftest,info line-table} - new-ui: create new user interface for GUI clients * (fast) tracepoints on s390x and ppc64le added to gdbserver * New target Andes NDS32 - Remove patch gdb-aarch64-v81-hwbreakpoints.diff (upstream) - Add patches from Fedora package: gdb-6.7-testsuite-stable-results.patch gdb-add-index-chmod.patch gdb-bison-old.patch gdb-container-rh-pkg.patch gdb-libexec-add-index.patch gdb-linux_perf-bundle.patch gdb-physname-pr11734-test.patch gdb-physname-pr12273-test.patch gdb-rhbz1007614-memleak-infpy_read_memory-test.patch gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch gdb-rhbz1149205-catch-syscall-after-fork-test.patch gdb-rhbz1156192-recursive-dlopen-test.patch gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch gdb-rhbz1350436-type-printers-error.patch gdb-test-ivy-bridge.patch OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=151
74 lines
2.5 KiB
Diff
74 lines
2.5 KiB
Diff
Typo in Python support breaks info type-printers command
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=1350436
|
|
|
|
[testsuite patch] PR python/17136: 'info type-printers' causes an exception when there are per-objfile printers
|
|
https://sourceware.org/ml/gdb-patches/2016-06/msg00455.html
|
|
|
|
diff -dup -rup gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.cc gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.cc
|
|
--- gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.cc 2013-01-01 07:41:26.000000000 +0100
|
|
+++ gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.cc 2016-06-27 22:57:58.168642470 +0200
|
|
@@ -31,6 +31,12 @@ templ<basic_string> s;
|
|
|
|
basic_string bs;
|
|
|
|
+class Other
|
|
+{
|
|
+};
|
|
+
|
|
+Other ovar;
|
|
+
|
|
int main()
|
|
{
|
|
return 0;
|
|
diff -dup -rup gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.exp gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.exp
|
|
--- gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.exp 2013-01-01 07:41:26.000000000 +0100
|
|
+++ gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.exp 2016-06-27 22:58:13.846785208 +0200
|
|
@@ -51,3 +51,7 @@ gdb_test_no_output "enable type-printer
|
|
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 -dup -rup gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.py gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.py
|
|
--- gdb-7.6.1/gdb/testsuite/gdb.python-orig/py-typeprint.py 2013-01-01 07:41:26.000000000 +0100
|
|
+++ gdb-7.6.1/gdb/testsuite/gdb.python/py-typeprint.py 2016-06-27 22:57:58.169642479 +0200
|
|
@@ -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())
|