使用图形界面调试arm程序: insight + gdb
【转帖请注明出处:blog.csdn.net/lanmanck】
1、首先下载insight,我这里是6.8版本,里面已经包含gdb和gdbserver了 :)
2、编译pc端得程序,类似visual studio,可以按照这篇文章来做:
http://linux.chinaunix.net/techdoc/develop/2008/12/28/1055528.shtml
但是有一点上述文章没有提到,那就是编译器链接库路径也要加进去的问题。
#cd insight
#./configure --target=arm-linux --prefix=/opt/work/insight --with-solib-absolute-prefix=/opt/armgcc/4.3.2/libc/lib
3、编译arm端得gdbserver:
cd insight/gdb/gdbserver
./configure --host=arm-linux --target=arm-linux
make
现在gdbserver已经生成,拷贝到arm文件系统的bin目录下即可。
============================调试方法===========================
1、打开arm-linux-insight,可以看到友好的界面,他会自动加载arm-linux-gdb
2、在界面打开一个arm可执行文件。这时会弹出对话框,让你选择gdb连接方式:有串口、tcp(网口)等。
3、在串口端运行gdbserver 192.168.1.2:1000 myarmexec,然后在insight选择好连接方式,点确定即可。
insight里的端口号1000好像改不了,咋回事?
注意:如果编译insight的时候,arm-linux-gcc的库路径没有加上去的话,会报一堆错误和警告,例如:
xxx is not at the expected address。
Error while mapping shared library sections。
解决方法如下2种之一:
1)、按照第一个步骤,把编译路径加上去:
--with-solib-absolute-prefix=/opt/armgcc/4.3.2/libc/lib
2)、在insight加载文件之前,设置好路径:
在insight的菜单打开gdb的console,用命令: set solib-absolute-path=/opt/armgcc/4.3.2/libc/lib
或者:set solib-search-path
现在,我们也可以像visual studio 那样调试linux程序了,嘿嘿.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通