GDB监控点watchpoint 监控问题

Gundam_00 2016-01-29 02:45:08
int* func_6()
{
int* p = new int;
*p = 1;
return p;
}

int main(int argc, char** argv)
{
int* pNewValue = func_6();

printf("pNewValue %d\n", *pNewValue);

*pNewValue = 2;

printf("pNewValue %d\n", *pNewValue);

return 0;

}

(gdb) b func_6()
...
(gdb) watch p
Hardware watchpoint 2: p
(gdb) c
Continuing.
Hardware watchpoint 2: p

Old value = (int *) 0x603030
New value = (int *) 0x603050
func_6 () at thread.cpp:150
150
(gdb) c
Continuing.

Watchpoint 2 deleted because the program has left the block in
which its expression is valid.
0x00000000004008b2 in main (argc=1, argv=0x7fffffffe688) at thread.cpp:105
105 delete pObj;

我监控了 func_6 函数里面的p的地址,想看看p的修改情况,但p返回出来后删除了,检控不了,但外面的pNewValue 继续接管p的值,能不能检控p的同时检控pNewValue 的值,知道这个变量一直的修改情况。
...全文
220 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧