我正在使用VS2015调查Clang代码库,.sln
文件由CMake生成。
我已经将解决方案配置为Debug/x64
,我可以看到生成的.pdb
文件附带了libs,但是我无法打破链接到clang可执行文件的lib代码
例如,我在clangParse模块中设置了一些断点,控制流在解析过程中必须经过这个断点,但是在打印AST之后,调试器并没有停在clangParse模块的断点上,而只是在clang模块本身设置的断点上。
对于其他一些手动创建的带有可执行文件和静态库的解决方案,我可以调试这些库。不知道为什么这对CMake生成的Clang / LLVM解决方案不起作用。
我需要在这里进行任何特殊设置吗?
答案 0 :(得分:1)
问题是Clang驱动程序在Windows内部生成了一个子进程,并且所有有趣的事情都在子进程中完成,因此libs中的断点永远不会发生,因为它们处于另一个进程中。 / p>
要解决此问题,请安装Microsoft Child Process Debugging Power Tool并启用子进程调试,这会将子进程附加到调试器。