硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1288|回复: 0
收起左侧

通过在本地运行GDB来加速Raspberry Pi调试

[复制链接]

2

主题

1

回帖

7

积分

新手上路

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


16.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 13:04 , Processed in 0.154110 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表