gdbserver远程调试

在嵌入式系统开发中,我们经常通过使用交叉调试工具实现远程调试。

采用远程调试的主要原因是大多数嵌入式平台不太适合进行本地调试,在很多嵌入式平台上内存等资源受限制,并且附带调试信息的可执行程序往往超过几兆字节大小。使用交叉调试,可以减轻嵌入式平台的这些负担。

 

gdb调试器提供了两种不同的远程调试方法,即stub(插桩)方式和gdbserver方式。

 

这两种远程调试方式是有区别的。

gdbserver本身的体积很小,能够在具有很小内存的目标系统上独立运行,因而非常适合嵌入式开发。

stub方式则需要通过链接器把调试代理和要调试的程序链接成一个可执行的应用程序文件,而且stub需要修改异常处理和驱动程序等。

 

但gdbserver要求宿主机和目标系统采用同一系列的操作系统,而stub没有这种限制,甚至目标系统可以没有操作系统。

gdbserver比较适合于调试嵌入式平台上的应用程序,而stub比较适合于调试bootloader和内核等系统程序。

 

用gdb+gdbserver的方式调试嵌入式平台上的Linux应用程序

安装arm-linux-gdb

安装gdbserver

远程调试

posted @   cnetsa  阅读(865)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示