提问人:Victor 提问时间:10/12/2023 更新时间:10/12/2023 访问量:88
Visual Studio Code:gdb:无法访问地址的内存
Visual Studio Code: gdb: cannot access memory at adress
问:
我无法通过 VSCode 使用 gdb 调试 C++ 共享库。我的所有断点都处于非活动状态。当将鼠标悬停在它们上时,它会说“无法读取地址的内存......”。不过,库的符号已加载。
我仍然可以在控制台中运行gdb来调试我的库。我可以成功设置断点,程序会按预期暂停断点。
我用makefile制作库。编译字符串如下:
/opt1/gcc/bin/g++ -c -DPTR_RESTRICT= -shared -fPIC -O0 -g -DOURDEBUG1 -ggdb api.cpp -o api.o
/opt1/gcc/bin/g++ -c -DPTR_RESTRICT= -shared -fPIC -O0 -g -DOURDEBUG1 -ggdb dllmain.cpp -o dllmain.o
链接字符串如下:
/opt1/gcc/bin/g++ api.o dllmain.o .-L/opt1/gcc/bin/lib64 -nodefaultlibs -O0 -g -DOURDEBUG1 -ggdb -shared -fPIC -ldl -o mydll.so
我尝试通过两种方式在 VSCode 中创建启动目标。
首先,我刚刚打开“launch.json”并单击“添加配置”按钮。然后我选择了“C/C++:(gdb)附加”。VSCode 创建了以下代码:
{
"name": "(gdb) Attach",
"type": "cppdbg",
"request": "attach",
"program": "/home/adminl/Project/mylib.so",
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
我也尝试自己创建配置:
{
"name": "(gdb) Attach 2",
"processId": "9814",
"type": "cppdbg",
"program": "/home/adminl/Project/mylib.so",
"request": "attach"
}
但没有成功。可能是什么问题?
答: 暂无答案
评论
gdb -p pId