gcc 在VSCode中使用CMake进行调试时,CallStack的源路径无效

whlutmcx  于 4个月前  发布在  Vscode
关注(0)|答案(1)|浏览(101)

我在VSCode中使用CMake构建了一个调试环境。在Visual Studio中使用相同的CMake可以正常运行带有断点的调试。但是,在VSCode中,CallStack的目标源文件不正常。
源文件的位置如下所示。
第一个月
下面显示的是Windows NT控制台中的输出。

Thread 1 "Renderer_Tester" hit Breakpoint 2, main () at C:/Workspace/CPU_Raytracing/main.cpp:7
7 in C:/Workspace/CPU_Raytracing/main.cpp

字符串
但是,通过复制调用堆栈从调用堆栈获得的路径如下所示。
main() (c:\Workspace\CPU_Raytracing\build\C\Workspace\CPU_Raytracing\main.cpp:7)
有人有解决这种情况的办法吗?
先谢了。
清除CMake的缓存,或删除buildfolder并重新启动它也是如此。
在Visual Studio中,在CMake项目中使用断点运行良好。
理想的结果是,当从VSCode通过CMake进行调试时,它会在断点处停止并指向相应的源码。

h6my8fg2

h6my8fg21#

已解决。
问题是,我试图通过修改tasks.json、launch.json和c_cpp_properties.json中的选项来修复这种情况,就像其他调试方法(而不是cmake)一样。
在settings.json中设置“cmake.debugConfig”解决了这个问题。
以下是我使用的选项

"cmake.debugConfig": {
    "type": "cppdbg",
    "request": "launch",
    "name": "CMake Debug",
    "program": "${command:cmake.launchTargetPath}",
    "args": [],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [],
    "externalConsole": false,
    "MIMode": "gdb",
    "miDebuggerPath": "C:/cygwin64/bin/gdb.exe",
}

字符集

相关问题