使用 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
.
我正在用 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
.