查看内核函数调用的调试方法【原创】

方法一、

通过打印函数地址,可以查看函数在哪里调用

例如:

Core.c   drivers\pwm

int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns)

{

         if (!pwm || period_ns == 0 || duty_ns > period_ns)

                   return -EINVAL;

 

    printk("%s  drivers\pwm Core.c----(%d)\r\n", __func__, __LINE__);

    printk("pwm->chip->ops->config=%p----(%d)\r\n", pwm->chip->ops->config, __LINE__);

         return pwm->chip->ops->config(pwm->chip, pwm, duty_ns, period_ns);

}

 

终端显示如下:

[   42.550000] pwm->chip->ops->config=c001b0c0----(378)

 

然后可以在

如下目录

Z:\linux-3.6.5

 

中的System.map中找到

c001b0c0  t  asiu_pwmc_config

就调用的是这个函数asiu_pwmc_config

 

方法二、

dump_stack()函数

 

 

欢迎交流

如有转载请注明出处

新浪博客:http://blog.sina.com.cn/u/2049150530
博客园:http://www.cnblogs.com/sky-heaven/
知乎:http://www.zhihu.com/people/zhang-bing-hua

【作者】张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
上一篇:Java垃圾收集学习笔记


下一篇:利用SOLR从数据库创建索引