Gdb симпатичный принтер не работает в Ubuntu 16.04

Я отладил коды C++ с помощью gdb в Ubuntu 14.04. Когда я передаю stl контейнер команде печати, это раньше печатало содержание контейнера. Но затем я обновил до Ubuntu 16.04 LTS неделя назад. Теперь те симпатичные принтеры не работают. Когда я печатаю их, я получаю тех, которые необработанный контейнер произвел Вас, добираются, когда Вам не установили принтеры Python.

Я имею libstdcxx/v6/python.py в моей системе. Я также имею libstdc++.so.6.0.21-gdb.py в папке автозагрузки. Когда я печатаю информационный симпатичный принтер в gdb, я получаю список stl принтеров, таким образом, я знаю, что они регистрируются. Однако мой gdb не печатает std::list переменная. Я включил симпатичный принтер, установил печать, симпатичную на.

Мой gcc версия 5.4 и gdb версия 7.11.1. Оба были установлены наряду с Ubuntu 16.04. Я не создал их вручную. Так что-либо очевидное я отсутствую?

0
задан 30 September 2016 в 10:22

1 ответ

Кажется этим с более новым libstdcxx, контейнеры (некоторые из них?) перемещены в станд.:: __ cxx11:: пространство имен и существующее сопоставление с образцом существующего симпатичного принтера больше не соответствуют. Следующий патч добавляет, что шаблон и зафиксировал его для меня.

*** /usr/share/gcc-5/python/libstdcxx/v6/printers.py.orig       2016-08-08 16:49:58.000000000 +0000                                                                     
--- /usr/share/gcc-5/python/libstdcxx/v6/printers.py    2016-11-08 23:25:23.620557354 +0000                                                                             
***************
*** 1081,1086 ****
--- 1081,1087 ----
      def add_container(self, base, name, function):                                                                                                                    
          self.add_version(base, name, function)                                                                                                                        
          self.add_version(base + '__cxx1998::', name, function)                                                                                                        
+         self.add_version(base + '__cxx11::', name, function)                                                                                                          

      @staticmethod                                                                                                                                                     
      def get_basic_type(type):                                                                                                                                         
0
ответ дан 28 September 2019 в 12:16

Другие вопросы по тегам:

Похожие вопросы: