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

方法一、

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

例如:

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

posted @ 2015-08-31 17:16  Sky&Zhang  阅读(746)  评论(0编辑  收藏  举报