gdb调试

1.观察点

观察点是在内存发生变化的时候才中断的,下面实验验证了这一点:
测试程序

#include <iostream>
#include <stdio.h>

int main(){
    int i=0;
    int j=0;
    std::cout<<"ok"<<std::endl;
    int *p=&i;
    int *q=&j;
    std::cout<<"test i:"<<std::endl;
    *p=250;
    std::cout<<"test i&&j"<<std::endl;
    *q=1;
    return 0;
}

代码在gdb中对应的行号是:


代码行号

我们在第7行设置一个断点,表示i和j都已经初始化完成,当程序执行到这里的时候,表示可以为i和j设置观察点
我们设置一个观察点,第一个观察点是i,第二个观察点是i&&j
我们用指针p和q改变i和j的值,当它们发生改变时,我们看到到观察点捕获到了这一变化:

2.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 程序调试的基本思想是“分析现象->假设错误原因->产生新的现象去验证假设”这样一个循环过程,根据现象如何假设错误原...
    Manfred_Zone阅读 16,672评论 0 26
  • 版权声明:本文为 cdeveloper 原创文章,可以随意转载,但必须在明确位置注明出处! gdb 简介 gdb ...
    登龙zZ阅读 12,198评论 1 15
  • 作者:刘宾, thomas_liub@hotmail.com 请尊重作者著作权,转载请注明出处,谢谢! GUI调...
    橄榄树下的托马斯阅读 4,260评论 0 1
  • gdb是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 启动...
    techping阅读 5,411评论 0 2
  • 来北京的第三日。 开了台灯,橘黄色的影打在百叶窗上。我告诉自己,已经没有什么过去在等你。 常觉得沼泽地般艰难,我独...
    Ssssssstephanie阅读 1,274评论 0 0

友情链接更多精彩内容