ruediger / Boost-Pretty-Printer

GDB Pretty Printers for Boost
197 stars 61 forks source link

small_vector is not supported #38

Closed frysztak closed 6 years ago

frysztak commented 6 years ago

First of all, thank you for this awesome project. It makes debugging much more bearable.

However, there is one thing that's missing. Printing boost::small_vector doesn't seem to be supported:

{<boost::container::small_vector_base<T*, boost::container::new_allocator<T*> >> = {<boost::container::vector<T*, boost::container::small_vector_allocator<boost::container::new_allocator<T*> >, void>> = {m_holder = {<
boost::container::small_vector_allocator<boost::container::new_allocator<T*> >> = {<boost::container::new_allocator<T*>> = {<No data fields>}, <No data fields>}, m_start = 0x5555555dcc60, m_size = 3, m_capacity = 5}}, m_storage_start = {aligner = {
data = " \305]UUU\000"}, data = " \305]UUU\000"}}, <boost::container::small_vector_storage<boost::move_detail::aligned_struct_wrapper<8, 8>, 4>> = {m_rest_of_storage = {{aligner = {data = "@\304]UUU\000"}, data = "@\304]UUU\000"}, {aligner = {data = "\000\306]UUU\000"}, dat
a = "\000\306]UUU\000"}, {aligner = {data = "\000\000\000\000\000\000\000"}, data = "\000\000\000\000\000\000\000"}, {aligner = {data = "\000\000\000\000\000\000\000"}, data = "\000\000\000\000\000\000\000"}}}, static needed_extra_storages = <optimized out>, static needed_b
ytes = <optimized out>, static header_bytes = <optimized out>, static s_start = <optimized out>, static static_capacity = <optimized out>}                                                                                                                                       
mbalabin commented 6 years ago

Hi, Sebastian! Thanks for the feedback. Indeed, small_vector is not supported yet. I will certainly look into it on the weekend. On the first glance, the underlying storage is rather simple, and pretty-printer can be easily implemented.