主要内容基于Windows下DLL文件调试_gdb调试dll windows-CSDN博客
使用wrapper程序调试dll
生成用于调试的.a文件
为了能够对DLL文件进行调试,需要待调试文件中包含调试信息。所以,需要在编译时指定-g -ggdb
关键字。且在调试前不能使用strip命令去掉可执行文件中的调试信息。
gcc -shared -fPIC -g -ggdb -o libadd.a add.c
add.c是待调试的DLL文件的源文件。
如果add.c文件中使用了头文件add.h, 那么需要增加额外的关键字"-D", "ADD_EXPORTS"
VS code 配置
在vscode的task.json文件中填下如下内容:
{
"type": "cppbuild",
"label": "C/C++: gcc.exe 生成lib for dll调试",
"command": "gcc",
"args": [
"-shared","-fPIC", "-g","-ggdb","-o","lib${fileBasenameNoExtension}.a","${fileBasename}","-D", "ADD_EXPORTS"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
},
现在,在VS code中打开要调试的dll的.c文件,可以通过,终端>运行任务 生成一个.a文件。