我正在使用C++开发一个用于Flutter应用(因此也用于Dart)的包,使用dart::ffi。我想知道是否有更好的方法来调试C++代码,例如逐步执行和变量监视等功能,而不是仅仅记录消息。我已经尝试过在Android Studio和VS Code中进行调试,但没有成功。
我正在使用C++开发一个用于Flutter应用(因此也用于Dart)的包,使用dart::ffi。我想知道是否有更好的方法来调试C++代码,例如逐步执行和变量监视等功能,而不是仅仅记录消息。我已经尝试过在Android Studio和VS Code中进行调试,但没有成功。
在Flutter模式下,Android Studio(或VS Code)不支持本地(C / C ++)代码调试。然而,有一个变通方法!在项目树中,右键单击“android”文件夹,选择Flutter ->在Android Studio中打开Android模块。该项目将切换到Android开发模式,在此模式下完全支持c / c ++调试。现在只需搜索“cpp”文件夹,在其中任何文件中设置断点,然后运行应用程序(当然仍处于Android开发模式中)!
我使用launch.json中的以下配置,在VS Code中成功调试了一些Linux桌面应用程序的C代码:
{
"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
。