![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
debug
Nucleusx
这个作者很懒,什么都没留下…
展开
-
uftrace实现原理
"-pg"指定编译器在函数入口插入对mcount()桩函数的调用,而“-finstrument-functions”会指定编译器在函数入口插入对__cyg_profile_func_enter()函数的调用,在函数返回时插入对__cyg_profile_func_exit()函数的调用。 uftrace对这2种情况都能支持。正常情况下,c库提供了对这些桩函数的定义,所以我们链接程序时,是可以链接到c库里面的桩函数定义。 [root@localhost test]# readelf -s /l...原创 2020-10-13 22:02:20 · 504 阅读 · 0 评论 -
gdb可视化调试过程中需要注意的问题点
1.调试过程中与实际行号对应不上 原因是编译器优化的问题,需要查看编译选项中是否有-O2或者-O3的编译选项,将优化的编译选项去掉后,一般就可以对应上了 2.一定要加上-g选项,不然会找不到符号 ...原创 2020-09-28 11:52:33 · 273 阅读 · 0 评论 -
gdb可视化调试使用的一个小技巧
在vs上调试工具可以通过单步调试,一行一行可视化地跟踪代码的执行,而linux上其实也是可以的,gdb本身就自带了这个功能,可通过以下命令来启用: gdb ./xxx -tui 通过-tui选项,也就可以获得与vs一样的可视化调试效果 ...原创 2020-09-28 11:19:18 · 840 阅读 · 0 评论 -
调试的第一原则
程序难免会出现各种各样的问题,对于一般的问题,只要借助于调试器、日志,很快也可以解决,对于一些特殊的情况,比方非必现问题,问题现象多变,或者出现问题所在的模块庞大而且我们对其只是一知半解,要定位到问题往往要耗费大量的时间。 笔者在前几日,遇到一问题,问题现象如此:在客户端每进行一次文件分享操作,文件的分享记录数会变为原来的两倍。 笔者在接到该问题后,觉得该问题应该很好排查,毕竟只是一个必现的问题,当排查了文件的分享接口后,发现接口的每个数据项都没有问题,才意识到该问题...原创 2020-06-15 12:54:13 · 226 阅读 · 0 评论