使用 dart::ffi 从 Dart 包中调试 C++ 代码

Debug C++ code from Dart package using dart::ffi

我正在用 C++ 开发一个包,用于 Flutter 应用程序(因此在 Dart 中),使用 dart::ffi 我想知道是否有更好的调试方法(逐步,变量注意,诸如此类)C++ 代码,而不是记录消息。我在 Android Studio 和 VS Code 中都试过了,但都没有成功。

Android Studio(或 VS Code)在 Flutter 模式下(目前)不支持原生 (C/C++) 代码调试。但是,有一个解决方法!在项目树中,右键单击 'android' 文件夹和 select Flutter -> 在 Android Studio 中打开 Android 模块。该项目将切换到 Android 开发模式,其中完全支持 c/c++ 调试。现在只需搜索 'cpp' 文件夹,在其中的任何文件和 运行 应用程序中设置断点(当然仍然处于 Android 开发模式)!

我使用 launch.json 中的以下配置成功调试了 VS Code 中的一些 c 代码,用于 linux 桌面应用程序:

    {
        "name": "Debug Native",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/build/linux/x64/debug/bundle/app",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}/build/linux/x64/debug/bundle",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ]
    }

程序中的app根据自己的应用名称修改即可。然后在调试选项卡中,您将能够启动此配置:

此配置仅启动构建的可执行文件。如果你想让它在启动前每次都构建你需要添加一个 preLaunchTask.