Bug 12065 - Configuration of backtrace display (feature)
Summary: Configuration of backtrace display (feature)
Status: UNCONFIRMED
Alias: None
Product: gdb
Classification: Unclassified
Component: c++ (show other bugs)
Version: HEAD
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-27 13:45 UTC by Aleksey Midenkov
Modified: 2010-09-27 13:45 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleksey Midenkov 2010-09-27 13:45:45 UTC
Sometimes template arguments pollute stack trace to make it very difficult to
read. The example below is not the worst case ever. Please, enable the facility
to turn off printing of template types inside the backtrace. Even more, it would
be handy to turn off function namespaces too. And more: turning off full path
names makes even cleaner look.

Possible commands may be:

set print backtrace templates off
set print backtrace namespaces off
set print backtrace pathnames off

Example:

#4 0x005b8dd5 in
boost::interprocess::detail::private_node_pool_impl<boost::interprocess::segment_manager_base<boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void>, 0u> > >::purge_chunks (this=0xaf3bf274)
at /usr/include/boost/interprocess/allocators/detail/node_pool.hpp:246
#5 0x005b8df5 in ~private_node_pool_impl (this=0xaf3bf274) at
/usr/include/boost/interprocess/allocators/detail/node_pool.hpp:83
#6 0x005b9716 in
boost::interprocess::detail::placement_destroy<boost::interprocess::detail::shared_node_pool<boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void>, 0u>, boost::interprocess::iset_index>,
24u, 64u> >::destroy_n (this=0xbfb5b154, mem=0xaf3bf274, num=1,
destroyed=@0xbfb5b084) at
/usr/include/boost/interprocess/allocators/detail/node_pool.hpp:363
#7 0x005af428 in boost::interprocess::segment_manager<char,
boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family,
boost::interprocess::offset_ptr<void>, 0u>,
boost::interprocess::iset_index>::priv_generic_named_destroy<char>
(this=0xaf3bf004, name=0x5c7cc0
"N5boost12interprocess6detail16shared_node_poolINS0_15segment_managerIcNS0_15rbtree_best_fitINS0_12mutex_familyENS0_10offset_ptrIvEELj0EEENS0_10iset_indexEEELj24ELj64EEE",
index=@0xaf3bf060, table=@0xbfb5b154, is_intrusive_index=
{<boost::interprocess::detail::integral_constant<bool,true>> = {static value =
<optimized out>}, static value = <optimized out>}) at
/usr/include/boost/interprocess/segment_manager.hpp:936

Example after turning off template print:

#4 0x005b8dd5 in
boost::interprocess::detail::private_node_pool_impl<...>::purge_chunks
(this=0xaf3bf274) at
/usr/include/boost/interprocess/allocators/detail/node_pool.hpp:246
#5 0x005b8df5 in ~private_node_pool_impl (this=0xaf3bf274) at
/usr/include/boost/interprocess/allocators/detail/node_pool.hpp:83
#6 0x005b9716 in boost::interprocess::detail::placement_destroy<...>::destroy_n
(this=0xbfb5b154, mem=0xaf3bf274, num=1, destroyed=@0xbfb5b084) at
/usr/include/boost/interprocess/allocators/detail/node_pool.hpp:363
#7 0x005af428 in
boost::interprocess::segment_manager<...>::priv_generic_named_destroy<...>
(this=0xaf3bf004, name=0x5c7cc0
"N5boost12interprocess6detail16shared_node_poolINS0_15segment_managerIcNS0_15rbtree_best_fitINS0_12mutex_familyENS0_10offset_ptrIvEELj0EEENS0_10iset_indexEEELj24ELj64EEE",
index=@0xaf3bf060, table=@0xbfb5b154, is_intrusive_index=
{<boost::interprocess::detail::integral_constant<bool,true>> = {static value =
<optimized out>}, static value = <optimized out>}) at
/usr/include/boost/interprocess/segment_manager.hpp:936

Example after turning off function namespaces:

#4 0x005b8dd5 in purge_chunks (this=0xaf3bf274) at
/usr/include/boost/interprocess/allocators/detail/node_pool.hpp:246
#5 0x005b8df5 in ~private_node_pool_impl (this=0xaf3bf274) at
/usr/include/boost/interprocess/allocators/detail/node_pool.hpp:83
#6 0x005b9716 in destroy_n (this=0xbfb5b154, mem=0xaf3bf274, num=1,
destroyed=@0xbfb5b084) at
/usr/include/boost/interprocess/allocators/detail/node_pool.hpp:363
#7 0x005af428 in priv_generic_named_destroy<...> (this=0xaf3bf004, name=0x5c7cc0
"N5boost12interprocess6detail16shared_node_poolINS0_15segment_managerIcNS0_15rbtree_best_fitINS0_12mutex_familyENS0_10offset_ptrIvEELj0EEENS0_10iset_indexEEELj24ELj64EEE",
index=@0xaf3bf060, table=@0xbfb5b154, is_intrusive_index=
{<integral_constant<bool,true>> = {static value = <optimized out>}, static value
= <optimized out>}) at /usr/include/boost/interprocess/segment_manager.hpp:936

Example after turning off path names:

#4 0x005b8dd5 in purge_chunks (this=0xaf3bf274) at node_pool.hpp:246
#5 0x005b8df5 in ~private_node_pool_impl (this=0xaf3bf274) at node_pool.hpp:83
#6 0x005b9716 in destroy_n (this=0xbfb5b154, mem=0xaf3bf274, num=1,
destroyed=@0xbfb5b084) at node_pool.hpp:363
#7 0x005af428 in priv_generic_named_destroy<...> (this=0xaf3bf004, name=0x5c7cc0
"N5boost12interprocess6detail16shared_node_poolINS0_15segment_managerIcNS0_15rbtree_best_fitINS0_12mutex_familyENS0_10offset_ptrIvEELj0EEENS0_10iset_indexEEELj24ELj64EEE",
index=@0xaf3bf060, table=@0xbfb5b154, is_intrusive_index=
{<integral_constant<bool,true>> = {static value = <optimized out>}, static value
= <optimized out>}) at segment_manager.hpp:936