应该是gdb的问题,因为直接用gdb调试也会有那种无视断点跑飞的问题。
而且我是自己编译的最新版本的gdb,也如此。
还有就是在某个函数的最后一行用step over也跑飞,得用step into, 但是step into很容易进到库函数里转圈半天,非预期,体验也差。qtcreator我以前用时也有这个问题。可能是gdb的这个设计和MS家的调试器不同,所以感觉怪异。
但是vs和visual gdb用gdb去调试,F10单步断点却很稳,奇怪。难道这两个调用的gdb命令不同?gdb单步就那两个命令。vs2022对调试有log功能,可以记录和调试器之间的详细交互命令,估计也是为了定位问题的。
vs2022这个我确定是显式指定的gdb,因为我在launch.vs.json里指定了gdb server后它报错说在linux上没找到gdb server,又改回gdb。
visual gdb不知道是用的gdb server还是gdb,如果vs2022没什么大问题,暂时弃用visual gdb了,留着备用。
【 在 hgoldfish 的大作中提到: 】
: 这个好像是 gdb 的 BUG?我用 QtCreator 搭配 gdb 也经常出问题。
: 不过目前最好的开源 C++ IDE 可能还真是 QtCreator. 而且也支持在 Windows 里面开发,布署到 Linux 设备里面调试。但是不太清楚是怎么做的。
--
FROM 123.118.191.*