调试C++的.so时逐过程(F10)、单步进入(F11)调试异常
vscode吧
全部回复
仅看楼主
level 1
NDYSXY 楼主
请教各位大佬,用vscode在linux中debug C++的.so动态库时,按以下步骤操作时调试异常可能时什么原因?
前提:在.so代码的只能顺序执行的同一函数内隔几行打几个断点。
第一步:启动调试,可以触发断点;
第二步:点“逐过程”,异常,未在下一行代码处暂停,而是直接跳到位于下几行的下一个断点处。
第三步:点“单步进入”,异常,未进入,也是直接跳到位于下几行的下一个断点处。
第四步:(此时位于最后一个断点),点“逐过程”,未在下一行代码处暂停,而是直接执行完毕,执行出了按F5的效果。
请教一下各位大佬,上述异常现象,可能是哪些原因造成的?望各位不吝赐教,谢谢!
2024年04月04日 08点04分 1
level 13
开了优化,二进制和源代码不一定一一对应的
2024年04月05日 00点04分 2
@Dragon1573 调试信息有多种格式,我没用过msvc。gcc用-g会将调试信息内嵌到生成文件里,之后如果涨去掉可以再用strip
2024年04月05日 23点04分
这些 *.so/*.a/*.lib/*.dll 库文件,如果不开 Debug 模式完全关闭优化进行编译,或者是直接使用别人预编译好的库,是不是需要配合什么「符号表」(*.pdb)文件才能做调试的?我用 MSVC + CMake 进行编译,编译模式使用 Debug ,所有行断点都可用,逐语句/逐过程调试也是正常的
2024年04月05日 02点04分
@zjf121348 涨->想
2024年04月05日 23点04分
1