在Windows上使用clang编译程序并使用lldb问题对其进行调试

问题描述

假设我有一个简单的Hello Wolrd:

#include <stdio.h>

int main(int argc,char** argv) {
    printf("Hello World");
    return 0;
}

我想用clang(10.0.0)进行编译,并用lldb进行调试。我可以使用以下代码进行编译:

clang -g -O0 main.c -o main.o

但是此可执行文件不会生成调试符号:

C:\Users\Tests>lldb main.exe
(lldb) target create "main.exe"
Current executable set to 'C:\Users\Test\main.exe' (x86_64).
(lldb) b main.c:main
Breakpoint 1: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
(lldb)

我开始调查,发现Windows上的clang认情况下使用msvc链接器,因此在链接c标准库出现一些错误后,我尝试将链接器更改为lld-link,我使用以下命令: / p>


clang -g -O0 -c main.c -o main.o
lld-link -debug -defaultlib:libcmt "-libpath:C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\lib\\x64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.17763.0\\ucrt\\x64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.17763.0\\um\\x64" -nologo main.o

但是仍然无法使用lldb调试可执行文件,在此先感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)