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

方法一、

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

例如:

Core.c   driverspwm

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  driverspwm Core.c----(%d) ", __func__, __LINE__);

    printk("pwm->chip->ops->config=%p----(%d) ", 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

原文地址:https://www.cnblogs.com/sky-heaven/p/4773550.html