Как просмотреть внутренние данные умного указателя внутри 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
во время отладки?