intel / intel/confidential-computing.sgx.sdk

GDB pretty printer

Open
#6 4 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
2
Forks
3
PR merge metrics
No merged PRs in 30d

Description

GDB pretty printing does not work for various STL containers.

Steps to reproduce:
* debug [SampleCode/Cxx11SGXDemo](https://github.com/intel/linux-sgx/tree/master/SampleCode)
* set breakpoint to [Enclave/TrustedLibrary/Libcxx.cpp](https://github.com/intel/linux-sgx/blob/master/SampleCode/Cxx11SGXDemo/Enclave/TrustedLibrary/Libcxx.cpp#L72) line 72
```c++
70: // Sample usages for lamdbas:
71: std::vector< int> v { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
72: printf("[Lambdas] Initial array using lambdas: { ");
73:
```
* print previously defined variable v (gdb: `print v`)

result:

`$1 = { >> = {> = {}, __begin_ = 0x7ffff4294070, __end_ = 0x7ffff429409c, __end_cap_ = {, 2u>> = {> = {}, __first_ = 0x7ffff429409c}, }}, }`

`info pretty-printer` returns:

```
global pretty-printers:
builtin
mpx_bound128
objfile /usr/lib/x86_64-linux-gnu/libstdc++.so.6 pretty-printers:
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::filesystem::v1::__7::path
std::experimental::filesystem::v1::__cxx11::__7::path
std::experimental::filesystem::v1::__cxx11::path
std::experimental::filesystem::v1::path
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
```

I am using `sgx-gdb` (`gdb 7.11.1`) on ubuntu 16.04. My SGX SDK repo is on 0f45cad401e974bee57704f3fb0ff185146bbde2 but all changes since then should not have an impact on the gdb pretty printers.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.