摘要:在 Linux 上找出并解决程序错误的主要方法简介:您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序。本文描述了几种可以用来调试在 Linux 上运行的程序的方法。我们将回顾四种调试问题的情况,这些问题包括段错误,内存溢出和泄漏,还有挂起。本文讨论了四种调试 Linux 程序的情况。在第 1 种情况中,我们使用了两个有内存分配问题的样本程序,使用 MEMWATCH 和 Yet Another Malloc Debugger(YAMD)工具来调试它们。在第 2 种情况中,我们使用了 Linux 中的 strace 实用程序,它能
阅读全文
摘要:1、通过U-boot将uzImage格式的内核加载到内存中(可以从Flash中读取,也可以从U盘、SD卡读取,还可以通过网络);2、登陆到OpenOCD上,在内核中__turn_mmu_on打上断点,跳过MMU(Linux 的链接地址一般是虚拟地址,比如S3C2410/S3C2440 的内核的链接地址是0xC0008000,而这个地址在启动MMU 之前是不对应实际内存的,所以要实现源码调试必须开启MMU。__turn_mmu_on的链接地址在System.map中查找);3、在Linux上启动arm-linux-gdb,并连接到OpenOCD上;4、用file vmlinux命令映射symbo
阅读全文
摘要:1.首先将《OpenOCD初始化脚本(u-boot)》的内容保存成名为.gdbinit的文件放在用户目录中;2、连接好开发板和OpenJTAG硬件;3、登陆到OpenOCD上,通过halt命令停止程序运行;4、在Linux系统上启动arm-linux-gdb u-boot;5、通过load命令将u-boot加载到内存;6、现在就可以用GDB命令对U-boot进行源码级调试了;
阅读全文
摘要:target remote 192.168.1.133:3333monitor resetmonitor haltmonitor wait_haltmonitor arm920t cp15 2 0monitor stepecho Configuring system...\n#disable watchdogmonitor mww 0x53000000 0#disalbe interrupt --- int-mask register monitor mww 0x4A000008 0xFFFFFFFF#disalbe interrupt --- int-sub-mask register mo
阅读全文