- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
**嵌入式开发基础调试篇第1页,共17页,星期日,2025年,2月5日memwatch下载memwatch-2.71.tar.gztarzxvfmemwatch-2.71.tar.gzcdmemwatch-2.71编写源代码(test.c)增加#include“memwatch.h”编译gcc-DMEMWATCH–DMW_STDIO test.cmemwatch.c–otest运行./test查看memwatch.log文件第2页,共17页,星期日,2025年,2月5日YetAnotherMallocDebugger下载yamd-0.32.tar.gztarzxvfyamd-0.32.tar.gzcdyamd-0.32 make makeinstall编写源代码(test.c)编译./yamd-gcc-g–otesttest.c运行./test查看输出日志第3页,共17页,星期日,2025年,2月5日GDB在编译时选择-g选项gdb的启动 gdbprogram-name orgdb启动后执行fileprogram-name orgdbprogram-namecorefile-name常用命令:filelistnextsteprunquitwatch breakmakeshellprintdisabledeletecontinue 第4页,共17页,星期日,2025年,2月5日KDB准备工作 您将需要下载并应用两个补丁。一个是“公共的”补丁,包含了对通用内核代码的更改,另一个是特定于体系结构的补丁。 例如,在运行2.6.6内核的x86机器上,您会需要kdb-v4.3-2.6.6-common-1.bz2和kdb-v4.3-2.6.6-i386-1.bz2第5页,共17页,星期日,2025年,2月5日KDB安装 bzip2-dkdb-v4.3-2.6.6-common-1.bz2 bzip2-dkdb-v4.3-2.6.6-i386-1.bz2打补丁 patch-p1kdb-v4.3-2.6.6-common-1 patch-p1kdb-v4.3-2.6.6-i386-1第6页,共17页,星期日,2025年,2月5日KDB编译内核“Kernelhacking”部分选择“Built-inKernelDebuggersupport”选项。选择“Compilethekernelwithframepointers”选项(如果有的话)则设置CONFIG_FRAME_POINTER标志。这将产生更好的堆栈回溯,因为帧指针寄存器被用作帧指针而不是通用寄存器。您还可以选择“KDBoffbydefault”选项。这将设置CONFIG_KDB_OFF标志,并且在缺省情况下将关闭KDB。第7页,共17页,星期日,2025年,2月5日KDBmakecleanmakemrpropermakemenuconfigmakebzImagemakemodulesmakemodules_install第8页,共17页,星期日,2025年,2月5日KDBcpSystem.map/boot/cparch/i386/boot/bzImage/boot/vmlinuz-2.6.6mkinitrdinitrd-2.6.6.img2.6.6配置grubreboot第9页,共17页,星期日,2025年,2月5日激活KDB通过在引导期间将kdb=on(off)标志传递给内核或者通过在挂装了/proc之后执行该工作:#echo1/proc/sys/kernel/kdb (#echo“0/proc/sys/kernel/kdb)kdb=early标志将导致在引导过程的初始阶段就把控制权传递给KDB。如果您需要在引导过程初始阶段进行调试,那么这将有所帮助。启动:PAUSE键第10页,共17页,星期日,2025年,2月5日KDB命令内存显示和修改这一类别中最常用的命令是md、mdr、mm和mmW。md命令以一个地址/符号和行计数为参数,显示从该地址开始的line-count行的内存。如果没有指定line-count,那么就使用环境变量所指定的缺省值。如果没有指定地址,那么md就从上一次打印的地址继续。地址打印在开头,字符转换打印在结尾。mdr命
文档评论(0)