GDB自动初始化变量

时间:2013-04-19 15:09:48

标签: debugging memory gdb

我试图在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}}

1 个答案:

答案 0 :(得分:0)

  

gdb似乎完全删除了这个值以进行debuging purpouse。

GDB

  

我希望看到内存中的实际值而不是$ 1和$ 3的0

看到内存中的实际值(恰好是0)。

您的问题是默认堆分配会返回“干净”的内存。只有在后续的重新分配中,您才会看到“脏”的内存。