Debugging GDB自动初始化变量 我试图做一个关于C++内存管理的例子。我想让人们知道,记忆中总有一些东西(即使你没有在里面写任何东西)
我的问题是,Debugging GDB自动初始化变量 我试图做一个关于C++内存管理的例子。我想让人们知道,记忆中总有一些东西(即使你没有在里面写任何东西),debugging,memory,gdb,Debugging,Memory,Gdb,我的问题是,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<<
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)
挂起处的主断点1(argc=1,argv=0x7fffffffe8f8)。cpp:6
6整数*测试=新整数;
(gdb)n
8*试验=10;
(gdb)p*测试
$1 = 0
(gdb)n
10删除测试;
(gdb)p*测试
$2 = 10
(gdb)n
12标准::cout
gdb似乎正是为了调试purpouse而删除了这个值
GDB并没有这样做
我希望看到内存中的实际值,而不是$1和$3的0
您正在内存中看到实际值(正好是0)
您的问题是,默认堆分配会返回“干净”内存。只有在后续重新分配时,您可能会看到“脏”内存。谢谢,但我不确定如何从g++获得脏内存