设置断点或单步跟踪可能会严重干扰多进\线程之间的竞争状态,并发的场景已经完全被破坏了,通过调试器看到的是一个干扰后的假象。咋整?
输出log日志,可以避免断点和单步所导致的副作用。
这里介绍freecplus开源框架,帮助输出log日志。
(一)freecplus下载/解压
源下载地址:
https://www.freecplus.net/7c7d06c70ade40639a86bdb76359d0d7.html
解压后
(二)freecplus使用
(1)将解压后的 _cmpublic.h/ _freecplus.h/ _freecplus.cpp 拷贝到自己的代码文件夹
(2)自己代码包含头文件 #include "_freecplus.h"
(3)创建一个CLogFile类
(4)用g++编译,便可执行
(5)打开/tmp/gdbfork.log 即可看到
GDB+日志log,基本上满足调试各种bug了。
个人公众号:拾一札记
参考:
码农有道
www.freecplus.net
https://www.bilibili.com/video/BV1ei4y1V758?p=4
https://freecplus.net/b72113dda88a43b48728e0552fd8a74c.html
如果文章有错别字,或者内容有错误,或其他的建议和意见,请您联系我指正,非常感谢!!