You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 17:48:17