User forums > General (but related to Code::Blocks)

pretty-printer already registered issue and its solution

(1/2) > >>

ollydbg:
After update my pretty printer version, I see a problem that GDB will complain that "pretty-printer already registered". This is exactly the question asked in Stackoverflow: gdb RuntimeError: pretty-printer already registered: libstdc++-v6

I post an answer there to simply solve this issue. See: my answer

oBFusCATed:
Do I have to do something in the debugger plugin or this is just setup related?

scarphin:
That problem doesn't occur when using stl pretty printers loaded gdb-init way.

ollydbg:

--- Quote from: oBFusCATed on February 09, 2015, 11:42:41 am ---Do I have to do something in the debugger plugin or this is just setup related?

--- End quote ---
No need to change our debugger plugin code. For me, I just comment out one line in my gdb script file.


--- Quote from: scarphin on February 09, 2015, 12:23:01 pm ---That problem doesn't occur when using stl pretty printers loaded gdb-init way.

--- End quote ---
Do you mean the gdbinit script automatically loaded when GDB started? (Disable the "-nx" option).
For me, if I comment the two line in my custom script:

--- Code: ---#from libstdcxx.v6.printers import register_libstdcxx_printers
#register_libstdcxx_printers (None)

--- End code ---
Then "info pretty-printer" doesn't show stl pretty printer, but if I uncomment two lines, I get the "already registered" issue.

scarphin:

--- Quote from: ollydbg on February 09, 2015, 02:05:44 pm ---
--- Quote from: scarphin on February 09, 2015, 12:23:01 pm ---That problem doesn't occur when using stl pretty printers loaded gdb-init way.

--- End quote ---
Do you mean the gdbinit script automatically loaded when GDB started? (Disable the "-nx" option).

--- End quote ---
Yes. My gdbinit is as follows:

--- Code: ---python
import sys
sys.path.insert(0, sys.path[0] + '/../../gcc-4.8.2/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
--- End code ---
And the result originating from 'info pretty-printer' command in gdb:

--- Code: ---> info pretty-printer
global pretty-printers:
  builtin
    mpx_bound128
  libstdc++-v6
    __gnu_cxx::_Slist_iterator
    __gnu_cxx::__7::_Slist_iterator
    __gnu_cxx::__7::__normal_iterator
    __gnu_cxx::__7::slist
    __gnu_cxx::__normal_iterator
    __gnu_cxx::slist
    __gnu_debug::_Safe_iterator
    std::_Deque_const_iterator
    std::_Deque_iterator
    std::_List_const_iterator
    std::_List_iterator
    std::_Rb_tree_const_iterator
    std::_Rb_tree_iterator
    std::__7::_Deque_const_iterator
    std::__7::_Deque_iterator
    std::__7::_List_const_iterator
    std::__7::_List_iterator
    std::__7::_Rb_tree_const_iterator
    std::__7::_Rb_tree_iterator
    std::__7::basic_string
    std::__7::bitset
    std::__7::deque
    std::__7::forward_list
    std::__7::list
    std::__7::map
    std::__7::multimap
    std::__7::multiset
    std::__7::priority_queue
    std::__7::queue
    std::__7::set
    std::__7::shared_ptr
    std::__7::stack
    std::__7::tuple
    std::__7::unique_ptr
    std::__7::unordered_map
    std::__7::unordered_multimap
    std::__7::unordered_multiset
    std::__7::unordered_set
    std::__7::vector
    std::__7::weak_ptr
    std::__cxx1998::_Deque_const_iterator
    std::__cxx1998::_Deque_iterator
    std::__cxx1998::_List_const_iterator
    std::__cxx1998::_List_iterator
    std::__cxx1998::__7::_Deque_const_iterator
    std::__cxx1998::__7::_Deque_iterator
    std::__cxx1998::__7::_List_const_iterator
    std::__cxx1998::__7::_List_iterator
    std::__cxx1998::__7::bitset
    std::__cxx1998::__7::deque
    std::__cxx1998::__7::forward_list
    std::__cxx1998::__7::list
    std::__cxx1998::__7::map
    std::__cxx1998::__7::multimap
    std::__cxx1998::__7::multiset
    std::__cxx1998::__7::set
    std::__cxx1998::__7::unordered_map
    std::__cxx1998::__7::unordered_multimap
    std::__cxx1998::__7::unordered_multiset
    std::__cxx1998::__7::unordered_set
    std::__cxx1998::__7::vector
    std::__cxx1998::bitset
    std::__cxx1998::deque
    std::__cxx1998::forward_list
    std::__cxx1998::list
    std::__cxx1998::map
    std::__cxx1998::multimap
    std::__cxx1998::multiset
    std::__cxx1998::set
    std::__cxx1998::unordered_map
    std::__cxx1998::unordered_multimap
    std::__cxx1998::unordered_multiset
    std::__cxx1998::unordered_set
    std::__cxx1998::vector
    std::__debug::bitset
    std::__debug::deque
    std::__debug::forward_list
    std::__debug::list
    std::__debug::map
    std::__debug::multimap
    std::__debug::multiset
    std::__debug::priority_queue
    std::__debug::queue
    std::__debug::set
    std::__debug::stack
    std::__debug::unique_ptr
    std::__debug::unordered_map
    std::__debug::unordered_multimap
    std::__debug::unordered_multiset
    std::__debug::unordered_set
    std::__debug::vector
    std::__norm::_Deque_const_iterator
    std::__norm::_Deque_iterator
    std::__norm::_List_const_iterator
    std::__norm::_List_iterator
    std::basic_string
    std::bitset
    std::deque
    std::forward_list
    std::list
    std::map
    std::multimap
    std::multiset
    std::priority_queue
    std::queue
    std::set
    std::shared_ptr
    std::stack
    std::tr1::__7::shared_ptr
    std::tr1::__7::unordered_map
    std::tr1::__7::unordered_multimap
    std::tr1::__7::unordered_multiset
    std::tr1::__7::unordered_set
    std::tr1::__7::weak_ptr
    std::tr1::shared_ptr
    std::tr1::unordered_map
    std::tr1::unordered_multimap
    std::tr1::unordered_multiset
    std::tr1::unordered_set
    std::tr1::weak_ptr
    std::tuple
    std::unique_ptr
    std::unordered_map
    std::unordered_multimap
    std::unordered_multiset
    std::unordered_set
    std::vector
    std::weak_ptr

--- End code ---
I'm using http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/ btw.

Navigation

[0] Message Index

[#] Next page

Go to full version