码迷,mamicode.com
首页 > 系统相关 > 详细

Linux内核、驱动调试总结

时间:2020-05-08 14:40:37      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:cti   tin   驱动调试   linux内核   func   rev   fine   efi   编译器   

1.给驱动模块的打印加tag

#define pr_fmt(fmt) "my_module: " fmt  //在所有include头文件之前加
pr_info("xxxx");

2.根据函数指针打印函数名

Symbols/Function Pointers:
    
%pF    versatile_init+0x0/0x110
%pf    versatile_init
%pS    versatile_init+0x0/0x110
%pSR   versatile_init+0x9/0x110 (with __builtin_extract_return_addr() translation)
%ps    versatile_init
%pB    prev_fn_of_versatile_init+0x88/0x88

“B”说明符导致符号名称带有偏移量,应该在打印堆栈回溯时使用。该说明符考虑了编译器优化的效果,该效果可能在使用尾调用并用noreturn GCC属性标记时发生。在ia64上,ppc64和parisc64体系结构的函数指针实际上是必须首先解析的函数描述符。
“F”和“f”说明符执行此分辨率,然后提供与“S”和“s”说明符相同的功能.

 

Linux内核、驱动调试总结

标签:cti   tin   驱动调试   linux内核   func   rev   fine   efi   编译器   

原文地址:https://www.cnblogs.com/hellokitty2/p/12850339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!