• 第十章


    对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试。例如,设置断点,逐步跟踪代码、输出调试信息等。打印内核调试信息:printk,printk 函数的用法与printf 函数类似,只不过printk函数运行在内核空间, printf函数运行在用户空间。也就是说,像Linux 驱动这样的Linux内核程序只能使用printk函数输出调试信息。值得注意的是:大量使用printk函数会严重影响Linux驱动的性能,在正式发布Liunx驱动时要去掉可能影响性能的printk函数,要想挨个去掉printk函数,非常麻烦,所以就要利用c语言中的编译指令。

    Linux系统中提供了一类工具,这些工具可以逐行跟踪程序的代码,这些工具包含用于调试用户空间程序的gdb、gdbserver和调试内核空间程序的kgdb

    1、gdb调试用户空间程序,gdb可以跟踪调试用户空间的程序,只能在PC上进行测试

    2、gdbserver远程调试用户空间程序,用gdbserver 测试运行在开发板、手机或Android模拟器上的程序。gdbserver是一个可以运行在ARM架构上的服务端程序,在开发板上使用gdbserver打开要测试的程序,然后通过串口、有线或无线网络可以在PC上进行调试

    3、kgdb远程调试内核程序,最好的内核调试工具。提供类似printk函数的复制输出功能,允许开发人员直接在PC上通过GDB链接目标设备。

  • 相关阅读:
    vmware中的虚拟系统和真实系统同时上网
    code first实现自关联(树结构数据)
    td无内容如何显示边框
    vs新建模板
    为ashx文件启用session管理
    有效防止SQL注入漏洞
    用DIV建左右自动伸缩型布局
    身份证验证算法
    CSS布局需注意的问题
    使用sharppcap抓数据包
  • 原文地址:https://www.cnblogs.com/xianrenzhilu/p/5652538.html
Copyright © 2020-2023  润新知