This makes the python utils work for the new ABI list (they still need to work with the new string as well).
* python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary): Register printer for std::__cxx11::list. * python/libstdcxx/v6/xmethods.py (ListMethodsMatcher.match): Match std::__cxx11::list as well as std::list. Tested powerpc64le-linux, committed to trunk.
commit 0a9343a8b97b381d02576afa20702aa5536ae751 Author: redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Tue Oct 11 10:33:29 2016 +0000 Enable printers and xmethods for std::__cxx11::list * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary): Register printer for std::__cxx11::list. * python/libstdcxx/v6/xmethods.py (ListMethodsMatcher.match): Match std::__cxx11::list as well as std::list. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240982 138bc75d-0d04-0410-961f-82ee72b054a4 diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py index b5fc2a0..714e1b8 100644 --- a/libstdc++-v3/python/libstdcxx/v6/printers.py +++ b/libstdc++-v3/python/libstdcxx/v6/printers.py @@ -1445,6 +1445,7 @@ def build_libstdcxx_dictionary (): libstdcxx_printer.add_container('std::', 'bitset', StdBitsetPrinter) libstdcxx_printer.add_container('std::', 'deque', StdDequePrinter) libstdcxx_printer.add_container('std::', 'list', StdListPrinter) + libstdcxx_printer.add_container('std::__cxx11::', 'list', StdListPrinter) libstdcxx_printer.add_container('std::', 'map', StdMapPrinter) libstdcxx_printer.add_container('std::', 'multimap', StdMapPrinter) libstdcxx_printer.add_container('std::', 'multiset', StdSetPrinter) diff --git a/libstdc++-v3/python/libstdcxx/v6/xmethods.py b/libstdc++-v3/python/libstdcxx/v6/xmethods.py index eb0dd79..605cda1 100644 --- a/libstdc++-v3/python/libstdcxx/v6/xmethods.py +++ b/libstdc++-v3/python/libstdcxx/v6/xmethods.py @@ -390,7 +390,7 @@ class ListMethodsMatcher(gdb.xmethod.XMethodMatcher): self.methods = [self._method_dict[m] for m in self._method_dict] def match(self, class_type, method_name): - if not re.match('^std::list<.*>$', class_type.tag): + if not re.match('^std::(__cxx11::)?list<.*>$', class_type.tag): return None method = self._method_dict.get(method_name) if method is None or not method.enabled: diff --git a/libstdc++-v3/testsuite/libstdc++-xmethods/list.cc b/libstdc++-v3/testsuite/libstdc++-xmethods/list.cc index ba20404..8fe0ad7 100644 --- a/libstdc++-v3/testsuite/libstdc++-xmethods/list.cc +++ b/libstdc++-v3/testsuite/libstdc++-xmethods/list.cc @@ -18,9 +18,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// List xmethods only recognize the non cxx11 std::list for now. -#define _GLIBCXX_USE_CXX11_ABI 0 - #include <list> int