我试图在C ++中做一个关于内存管理的例子。我想向人们展示,记忆中总会有某些东西(即使你没有在里面写任何东西)
我的问题是gdb
似乎完全删除了这些值以用于调试目的......
Breakpoint 1, main (argc=1, argv=0x7fffffffe8f8) at dangling.cpp:6
6 int *test=new int;
(gdb) n
8 *test=10;
(gdb) p *test
$1 = 0
(gdb) n
10 delete test;
(gdb) p *test
$2 = 10
(gdb) n
12 std::cout<<*test<<std::endl;
(gdb) p *test
$3 = 0
(gdb)
有没有办法告诉gdb
不要这样做。我希望看到内存中的真正价值,而不是0
和$1
的{{1}}
答案 0 :(得分:0)
gdb似乎完全删除了这个值以进行debuging purpouse。
GDB
。我希望看到内存中的实际值而不是$ 1和$ 3的0
你 看到内存中的实际值(恰好是0)。
您的问题是默认堆分配会返回“干净”的内存。只有在后续的重新分配中,您才会看到“脏”的内存。