Linux下VSCode调试C#调用的C++库libcalctest.so问题求助
Linux下VSCode调试C#调用C++库的问题
我在Linux环境使用VSCode开发时遇到调试问题:C库libcalctest.so已通过C#包装器MyCalcWrapper用P/Invoke调用,C#应用MyNewConsoleApp运行输出正常,但无法调试C函数。
已配置的launch.json
C++库的launch.json
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Attach", "type": "cppdbg", "request": "attach", "program": "${workspaceFolder}/libcalctest.so", "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", "processId":"${command:pickProcess}", "preLaunchTask": "BUILD", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
C#项目的launch.json
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "C# Debug", "type": "dotnet", "request": "launch", "projectPath": "${workspaceFolder}/MyNewConsoleApp.csproj" } ] }
操作步骤与现象
- 先启动C#进程调试,获取进程ID后将C++调试器附加到该进程。
- 附加后调试控制台输出:
New LWP 31789] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5daf3810b934) at ./nptl/futex-internal.c:57 Loaded '/lib/x86_64-linux-gnu/libpthread.so.0'. Symbols loaded. Loaded '/lib/x86_64-linux-gnu/libdl.so.2'. Symbols loaded. Loaded '/lib/x86_64-linux-gnu/libstdc++.so.6'. Symbols loaded. Loaded '/lib/x86_64-linux-gnu/libm.so.6'. Symbols loaded. Loaded '/lib/x86_64-linux-gnu/libgcc_s.so.1'. Symbols loaded. Loaded '/lib/x86_64-linux-gnu/libc.so.6'. Symbols loaded. Loaded '/lib64/ld-linux-x86-64.so.2'. Symbols loaded. Loaded '/usr/share/dotnet/host/fxr/8.0.6/libhostfxr.so'. Symbols loaded. Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.6/libhostpolicy.so'. Symbols loaded. Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.6/libcoreclr.so'. Symbols loaded. Loaded '/lib/x86_64-linux-gnu/librt.so.1'. Symbols loaded. Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.6/libclrjit.so'. Symbols loaded. Loaded '/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.6/libSystem.Native.so'. Symbols loaded.
- 当C#代码调用C++函数时,调试控制台新增输出:
[Thread 0x7454995ff640 (LWP 31789) exited] Thread 1 "MyNewConsoleApp" received signal SIGTRAP, Trace/breakpoint trap. 0x00007455296c7104 in ?? ()
请问我遗漏了什么或操作有误的地方?
内容的提问来源于stack exchange,提问作者Corrior
相关产品推荐
相关产品推荐

