嵌入式Linux调试技术

嵌入式Linux调试技术

ID:37834744

大小:825.87 KB

页数:30页

时间:2019-06-01

嵌入式Linux调试技术_第1页
嵌入式Linux调试技术_第2页
嵌入式Linux调试技术_第3页
嵌入式Linux调试技术_第4页
嵌入式Linux调试技术_第5页
资源描述:

《嵌入式Linux调试技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、嵌入式嵌入式嵌入式LLLiiinnnuxuxux调调调试技术试技术试技术如何在嵌入式LINUX中调试主讲:易松华调试简介Linux的编译调试工具、仿真器介绍应用程序的调试启动代码调试内核调试其他调试方法2说在前面的话•八大菜系–各具特色•调试技术–博大精深理想:•1.吃遍天下美食•蔡澜提菜篮•2.成为“无米之厨”•3.成为神仙•吃喝之事完全变成“打酱油”•现实:•限于条件,最爱只能麻婆豆腐•限于个人经验,只能涉及LINUX的部分调试技术调试简介•调试(Debug)=De+bug–指发现和去除软件失效根源的过程。•软件调试的简单分类分类方法类别1类别2调试所处阶段静态调试动态

2、调试代码类别机器级调试源代码调试调试对象所处位置应用调试系统级调试运行环境本地调试交叉(远程)调试调试简介•软件调试的关键技术----断点–软件断点•CPU在自陷或异常时能跳转到确定位置执行代码•靠程序指令陷阱来实现,即通过修改程序指令的方法来实现–硬件断点•硬件断点需要目标CPU的硬件支持–关系•断点个数–软件断点不限–硬件断点受限于CPU的设置»Arm7/arm92个,ARM118个•应用场合–软件断点主要用于RAM,»如有比较高级的仿真器关持,可支持NORflash–硬件断点可设置在任何位置代码上调试简介•调试接口–调试的起源--ICE(InCircuitEmulat

3、ion)–Motorola用于M68K和PowerPC的调试接口—BDM–流行风向标--JTAG–“软件厨师”的梦中情人--软件仿真调试简介•调试应遵循的规则–调试器自身须稳定,须反映真实的信息–提供尽可能多反映真实信息–尽可能减少对被测试系统的影响•软件调试时一种有损测试Linux的编译调试工具、仿真器介绍•Binutils–objdump反汇编,查看目标文件或可执行文件内部信息。–addr2line把机器地址转换到代码对应的位置。–nm查看目标文件或可执行文件中的各种符号。–gprof分析各个函数的使用情况,找出性能的瓶颈所在(这需要加编译选项)。•Gdb/KDB/KG

4、DB•内核–OOPS和PANICLinux的编译调试工具、仿真器介绍百问网OpenOCD仿真器AbatronBDI3000Lauterbach-Trace32应用程序的调试•本地和交叉调试•多进程调试•多线程调试应用程序的调试•本地和交叉调试–gdb/ddd/eclipse–gdbserver/ddd应用程序的调试•多进程调试–follow-fork-mode–attach子进程–GDBwrapper方法应用程序的调试•多线程调试(gdb)–infothreads–threadID–breakthread_func–threadapplyID1ID2command–Etc.

5、启动代码调试-openOCD调试ubootU-boot调试启动代码调试-openOCD调试uboot内核代码调试•内核解压缩和MMU使能之前代码调试–类似UBOOT–板级初始化•通过仿真器初始化•通过bootloader初始化•调试的是Image内核生成步骤内核代码调试•内核MMU使能之后的代码调试–内核修改和配置–配置内核–调试内核内核代码调试内核驱动调试装载驱动和符号表设置断点调试其他调试方法•进程跟踪工具strace•系统性能测试gprof•代码覆盖率测试gcov•coredump•内存泄漏检测工具用strace跟踪程序的系统调用和信号•功能–单个linux进程的跟踪

6、工具,能跟踪并打印出程序调用的所有系统调用和信号–不需要重新编译被跟踪的程序–开源工具http://sourceforge.net/projects/strace/•语法–strace[-dffhiqrtttTvxx][-acolumn][-eexpr]...[-ofile][-ppid]...[-sstrsize][-uusername][command[arg...]]strace-c[-eexpr]...[-Ooverhead][-Ssortby][command[arg...]]•例子ls.starce–strace–f–ols.staracels•交叉编译CC=a

7、rm-linux-gcc./configure–host=arm-linux(参看其文档)20www.embedu.org用gprof测试程序执行的时间•gprof是代码执行测试工具,它可以测试程序中各个函数执行所花的时间•可以用gprof来优化代码•编译测试代码时要指定–pg选项,不能使用-O2选项•包含在gnubinutils工具集中http://www.gnu.org/software/binutils/•语法–Usage:gprof[-[abcDhilLsTvwxyz]][-[ACeEfFJnNOpPqQZ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。