使用VS code调试Clang
VS code是一款非常好用的开发工具,是远程开发的必备利器。Clang虽是编译器,但对于程序员来说也是一个app,所以自然也可以使用gdb来调试。为了更好的学习Clang的代码,推荐使用VS code + gdb的方式直接debug Clang的代码,结合文档说明做到深入学习理解。
编译Clang
可以参考LLVM官网使用CMake命令编译,由于要debug,所以必须编译Debug版本的Clang。可参考使用下列编译命令:
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE="Debug" -DBUILD_SHARED_LIBS=True -DLLVM_USE_SPLIT_DWARF=True -DCMAKE_INSTALL_PREFIX="/home/user/prefix-test" -DLLVM_OPTIMIZED_TABLEGEN=True -DLLVM_BUILD_TESTS=True -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_ENABLE_PROJECTS="clang;llvm;compiler-rt" -DLLVM_ENABLE_ASSERTIONS=On ../llvm
配置VS code
VS code需要预先安装C++的插件,然后点击“RUN”---->“Open Configrations”,仅需要配置“program”和“args”两项即可
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/out/stage2-install/bin/clang++",//配置Clang编译结果路径
"args": ["--target=riscv64 -o ${workspaceFolder}/test_c++.cpp.o -c++ ${workspaceFolder}/test_c++.cpp"], //Clang参数
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
调试
完成以上步骤,就可以F5直接调试了!
运行前先在Clang的main函数打个断点,位置在
llvm-project/clang/tools/driver/driver.cpp