zoukankan      html  css  js  c++  java
  • Android深度探索HAL与驱动开发-——第10章

        本章主要讲Linux调试技术。打印内核调试信息:printk,printk函数运行在内核空间,linux内核程序只能使用printk函数输出调试信息。printk文件由一个4个数字组成文本文件。6:将消息输出到控制台的级别。4:默认的消息日志级别。1:控制台日志级别可被设置的最小值。7:控制台日志级别的默认值。

        在不想使用prink输出消息时,还需要了解可变参数的宏和do while。通过虚拟文件系统进行数据交互:在 Linux文件系统中/proc被用来作为内核空间与用户空间进行数据交互的工具。/proc文件系统和/dev文件系统一样,需要设置访问文件的动作处理函数。而/proc文件系统主要通过  proc_dir_entry.read_proc和proc_dir_entry.read_write函数指针来设置读写处理函数。
        调试工具:gdb、gdbserver和调试内核空间程序的kgdb。gdb可跟踪调试用户空间的程序。quit用于退出gdb调试界面;list用于列出程序中的代码。用gdbserver远程调试用户空间程序,是一个可以运行在ARM架构上的服务端程序。首先进入Android模拟器的终端,然后进入data/local目录。Android模拟器只能通过端口映射方式使用gdbserver调试程序。
        用kgdb远程调试内核程序,kgdb除了提供类似prink函数的日志输出功能,还让开发人员在pc上链接目标设备。kgdb包含两部分:kgdb内核和一套链接接口,支持串口tty设备连接和以太网连接。用kgdb调试Linux内核前需要先配置Linux内核和设置内核参数,使用make menuconfig命令进Linux内核配置菜单中。

  • 相关阅读:
    做了点数论的题
    2016日报总结
    2016在H3C
    2017春节小目标
    2016项目小总结
    明明的随机数
    计算字符个数
    字符串最后一个单词的长度
    字符串分隔
    考研回忆
  • 原文地址:https://www.cnblogs.com/chengqian95/p/5648252.html
Copyright © 2011-2022 走看看