嵌入式开发基础调试篇.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式开发基础调试篇第一页,共十七页,2022年,8月28日 memwatch下载cd memwatch-2.71编写源代码(test.c)增加 #include “memwatch.h”编译 gcc -DMEMWATCH –DMW_STDIO test.c memwatch.c –o test运行 ./test查看memwatch.log文件第二页,共十七页,2022年,8月28日 Yet Another Malloc Debugger 下载yamd-0.32.tar.gz tar zxvf yamd-0.32.tar.gz cd yamd-0.32 make make install编写源代码(test.c)编译 ./yamd-gcc -g –o test test.c 运行 ./test查看输出日志第三页,共十七页,2022年,8月28日 GDB在编译时选择-g选项gdb的启动 gdb program-name or gdb 启动后执行file program-name or gdb program-name corefile-name 常用命令:file list next step run quit watch break make shell print disable delete continue 第四页,共十七页,2022年,8月28日 KDB准备工作 您将需要下载并应用两个补丁。一个是“公共的”补丁,包含了对通用内核代码的更改,另一个是特定于体系结构的补丁。 例如,在运行 内核的 x86 机器上,您会需要 kdb-v4.3-2.6.6-common-1.bz2 和 kdb-v4.3-2.6.6-i386-1.bz2 第五页,共十七页,2022年,8月28日 KDB安装 bzip2 -d kdb-v4.3-2.6.6-common-1.bz2 bzip2 -d kdb-v4.3-2.6.6-i386-1.bz2 打补丁 patch -p1 kdb-v4.3-2.6.6-common-1 patch -p1 kdb-v4.3-2.6.6-i386-1 第六页,共十七页,2022年,8月28日 KDB编译内核“Kernel hacking”部分选择“Built-in Kernel Debugger support”选项。选择“Compile the kernel with frame pointers”选项(如果有的话)则设置 CONFIG_FRAME_POINTER 标志。这将产生更好的堆栈回溯,因为帧指针寄存器被用作帧指针而不是通用寄存器。您还可以选择“KDB off by default”选项。这将设置 CONFIG_KDB_OFF 标志,并且在缺省情况下将关闭 KDB。 第七页,共十七页,2022年,8月28日 KDBmake cleanmake mrpropermake menuconfigmake bzImagemake modulesmake modules_install第八页,共十七页,2022年,8月28日 KDBcp System.map /boot/配置grubreboot第九页,共十七页,2022年,8月28日 激活 KDB 通过在引导期间将 kdb=on (off)标志传递给内核或者通过在挂装了 /proc 之后执行该工作:#echo 1 /proc/sys/kernel/kdb (#echo “0 /proc/sys/kernel/kdb) kdb=early标志将导致在引导过程的初始阶段就把控制权传递给 KDB。如果您需要在引导过程初始阶段进行调试,那么这将有所帮助。 启动: PAUSE键第十页,共十七页,2022年,8月28日 KDB 命令 内存显示和修改这一类别中最常用的命令是 md 、 mdr 、 mm 和 mmW 。md 命令以一个地址/符号和行计数为参数,显示从该地址开始的 line-count 行的内存。如果没有指定 line-count ,那么就使用环境变量所指定的缺省值。如果没有指定地址,那么 md 就从上一次打印的地址继续。地址打印在开头,字符转换打印在结尾。 mdr 命令带有地址/符号以及字节计数,显示从指定的地址开始的 byte-count 字节数的初始内存内容。它本质上和 md 一样,但是它不显示起始地址并且不在结尾显示字符转换。 mdr 命令较少使用。 mm 命令修改内存内容。它以地址/符号和新内容作为参数,用 new-contents 替换地址处的内容。 mmW 命令更改从地址开始的 W 个字节。请注意, mm 更改一个机器字。 第十一页,共十七页,2022年,8月28日 KDB 命令寄存器显示和修改这一类别中的命令有

文档评论(0)

xiaolan118 + 关注
实名认证
文档贡献者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档