檢視核心函式呼叫的除錯方法 原創

2022-03-19 19:12:32 字數 726 閱讀 8884

方法一、

通過列印函式位址,可以檢視函式在**呼叫

例如: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()函式

歡迎交流

除錯檢視PHP Core的呼叫棧

php gdb.php 如下 class test function a i function b i function c i function d i function e i a 2 使用php cli模式執行指令碼 usr local php 7.3.4 bin php gdb.php檢視p...

核心模組的除錯方法

核心可載入模組的除錯具有其特殊性。由於核心模組中各段的位址是在模組載入進核心的時候才最終確定的,所以 develop 機的gdb 無法得到各種符號位址資訊。所以,使用 kgdb 除錯模組所需要解決的乙個問題是,需要通過某種方法獲得可載入模組的最終載入位址資訊,並把這些資訊加入到 gdb環境中。i 在...

如何檢視Linux核心輸出的除錯資訊

第一點需要澄清 我使用的環境是嵌入式linux,並非桌面版linux,檢視核心輸出的除錯資訊也是為了追蹤核心子系統的執行。這可能是乙個非常小的知識點,但是還是希望自己記錄一些東西,以後也好拾起。1.如何開啟核心除錯dbg輸出 config dynamic debug y 在核心的配置選項中,我們可以...