Как просмотреть внутренние данные умного указателя внутри GDB?

У меня есть тестовая программа, как показано ниже:

#include<memory>
#include<iostream>
using namespace std;

int main()
{
    shared_ptr<int> si(new int(5));
    return 0;
}

Отладить это:

(gdb) l
1   #include<memory>
2   #include<iostream>
3   using namespace std;
4   
5   int main()
6   {
7       shared_ptr<int> si(new int(5));
8       return 0;
9   }
10  
(gdb) b 8
Breakpoint 1 at 0x400bba: file testshare.cpp, line 8.
(gdb) r
Starting program: /home/x/cpp/x01/a.out 

Breakpoint 1, main () at testshare.cpp:8
8       return 0;
(gdb) p si
$1 = std::shared_ptr (count 1, weak 0) 0x614c20

Он только распечатывает информацию о типе указателяsi, но как получить значение, хранящееся в нем (в этом случае5)? Как я могу проверить внутреннее содержаниеsi во время отладки?

Ответы на вопрос(2)

Ваш ответ на вопрос