From: asmwarrior <asmwarrior@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>, gdb@sourceware.org
Subject: Re: How to load C++ pretty-printers
Date: Sat, 16 Mar 2019 12:41:00 -0000 [thread overview]
Message-ID: <f9779cd9-b2e2-93dd-ff14-12b6e5a9db23@gmail.com> (raw)
In-Reply-To: <835zsjz0f8.fsf@gnu.org>
On Sat Mar 16 2019 16:30:19 GMT+0800, Eli Zaretskii wrote:
> I have a question regarding loading the C++ pretty-printers provided
> by GCC. This might be specific to MS-Windows, not sure.
>
> So I have the C++ pretty-printers installed in
> d:/usr/share/gcc-7.3.0/python/libstdcxx/v6. I start GDB to debug
> itself. The "info pretty-printer" command says:
>
> (top-gdb) info pretty-printer
> global pretty-printers:
> builtin
> mpx_bound128
> objfile D:\gnu\gdb-8.2\gdb\gdb.exe pretty-printers:
> type_lookup_function
>
> This doesn't seem to mention the GCC-provided C++ pretty-printers. So
> I start the inferior GDB running:
>
> (top-gdb) start --config
>
> After that, "info pretty-printers" still shows no C++ pretty-printers.
> OK, me thinks, this could be because libstdc++ is statically linked
> into GDB, so I load the pretty-printers by hand:
>
> (top-gdb) source d:/usr/share/gcc-7.3.0/python/libstdcxx/v6/printers.py
Under My Windows 7 system, I'm using such commands(I put them in a my.gdb script file) to load and register the pretty printers.
I put the libstdcxx folder in the same folder as the my.gdb file.
set auto-load safe-path $debugdir;$datadir/auto-load
python
import sys
sys.path.insert(0, '')
from libstdcxx.v6.printers import register_libstdcxx_printers
# load other pretty printers
end
And here is the result of info pretty-printer command
global pretty-printers:
.*
bound
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::__cxx11::basic_string
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::__cxx11::basic_string
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::experimental::fundamentals_v1::__7::any
std::experimental::fundamentals_v1::__7::basic_string_view
std::experimental::fundamentals_v1::__7::optional
std::experimental::fundamentals_v1::any
std::experimental::fundamentals_v1::basic_string_view
std::experimental::fundamentals_v1::optional
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
lookup_function
If I remember correctly, there used to be a function call register_libstdcxx_printers() like below:
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
But later, the "register_libstdcxx_printers (None)" is not needed any more.
Asmwarrior
next prev parent reply other threads:[~2019-03-16 12:41 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-16 8:30 Eli Zaretskii
2019-03-16 12:41 ` asmwarrior [this message]
2019-03-16 12:58 ` Eli Zaretskii
2019-03-16 13:21 ` asmwarrior
2019-03-16 14:25 ` Simon Marchi
2019-03-16 16:00 ` Eli Zaretskii
2019-03-17 1:47 ` asmwarrior
2019-03-17 11:03 ` Joel Brobecker
2019-03-17 12:39 ` Philippe Waroquiers
2019-03-17 15:31 ` Eli Zaretskii
2019-03-17 17:17 ` Philippe Waroquiers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f9779cd9-b2e2-93dd-ff14-12b6e5a9db23@gmail.com \
--to=asmwarrior@gmail.com \
--cc=eliz@gnu.org \
--cc=gdb@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox