老青年Linwen 卡电技术服务 本教程说明如何通过在Windows计算机上运行gdb调试器来提高直接在Raspberry Pi上构建的项目的调试性能。我们将从创建一个常规的远程构建项目开始,并将展示如何修改它以在本地运行gdb,并解释为什么这样做会提高性能。在开始之前,请安装VisualGDB 5.3或更高版本。 1 . 启动Visual Studio并打开VisualGDB Linux项目向导: 2 . 选择“Create a new project ->Application-> MSBuild”。请注意,本教程中显示的技术也适用于其他项目类型: 3 . 选择“Build the project under Linux over network”,然后选择Raspberry Pi作为远程计算机: 4 . 进行默认的源位置设置(本地存储,在构建期间上传): 5 . 按“Finish”以生成一个基本项目: 6 . 用以下代码替换主源文件的内容: 7 . 评估STL字符串列表涉及gdb方面的非平凡计算,因此在Raspberry Pi上进行计算会引起明显的延迟。进入main()函数并将鼠标悬停在列表上以查看值: 8 . 现在,我们将更改项目设置以在Windows上运行gdb,以便所有表达式解析和符号处理都在开发计算机上完成。打开VisualGDB项目属性,然后设置“Allow choosing build/clean/debug command hosts independently”复选框(需要自定义版本或更高版本): 9 . 转到“Debug Settings”页面,选择“ust a custom GDB executable”,然后单击“Customize”: 11 . 由于可执行文件是在Raspberry Pi上构建的,因此我们需要将其下载到Windows计算机并配置gdb以使用它。在“Debugged executable”字段中输入“ $(ProjectDir)/ $(TargetFileName)”: 12 . 现在,我们将配置VisualGDB在调试之前下载可执行文件。转到“Custom Debug Steps”页面,单击“Before launching GDB->Edit”,然后添加一个定制操作以将$(TargetPath)下载到$(ProjectDir)/ $(TargetFileName): 13 . 再次开始调试。VisualGDB将自动在远程计算机上启动gdbserver并将gdb连接到它: 14 . 观察现在如何更快地评估复杂表达式,因为大多数计算是在Windows计算机上完成的: 15 . 如果在本地运行gdb,则需要保留Raspberry Pi库的最新本地副本,以便gdb可以从中加载符号。另外,您可以通过将“ set sysroot remote:/”添加到启动命令列表中,将其配置为从远程计算机自动获取库: 16 . 您可以通过在GDB会话窗口中运行“ set debug remote 1”命令,然后观察GDB发送到gdbserver的数据包,来快速了解Windows上gdb所做的简化。了解gdb如何将复杂的表达式转换为简单的命令,例如“在地址XXX读取4个字节”,然后由运行在Raspberry Pi上的gdbserver快速处理这些命令:
|