一種通過printf列印的除錯程式的方法

2021-08-29 16:22:42 字數 825 閱讀 7852

我們在寫**的時候,有時候需要除錯程式的時候,對於初學者,可以通過簡單的增加printf函式列印,這樣能夠來跟蹤程式的蹤跡,舉個很簡單的**:

#include#includeint main() else 

printf("--[%s] %s:%d--\n", __file__, __function__, __line__);

return 0;

}

通過 printf("--[%s] %s:%d--\n", __file__, __function__, __line__); 列印執行的檔名,函式名,行數。

/mnt/nfsroot/kervin/test/print$ ./a.out 

--[function.c] main:11--

--[function.c] main:14--

--[function.c] main:20--

--[function.c] main:23--

可以看到函式的詳細執行路徑。

在有遇到kernel panic的時候,有時候通過printf無法直接定位到**的問題,這是因為printf有滯後性,當kernel panic的時候,前面會有部分printf還沒來的及列印到串列埠,這樣會給我們分析定位問題造成困擾,我們可以在printf後面加上sleep函式,用來給足夠的時間,保證執行到的printf都能夠列印出來,

printf("--[%s] %s:%d--\n", __file__, __function__, __line__);

sleep(1);

對新手小白還是有很有用處的,大神就可以忽略了。

JSP報表列印的一種簡單解決方案

1.在word或excel中製作報表的樣式。excel的行高和列寬單位無法用mm或cm表示。需要計算。在1024 768下,1cm約為38畫素。以此為基準,可計算並控制報表的行列位置。2.在word中設定 標題行重複 在excel中設定 檔案 頁面設定 工作表 列印標題 3.另存為網頁,改字尾名 h...

JSP報表列印的一種簡單解決方案

1.在word或excel中製作報表的樣式。excel的行高和列寬單位無法用mm或cm表示。需要計算。在1024 768下,1cm約為38畫素。以此為基準,可計算並控制報表的行列位置。2.在word中設定 標題行重複 在excel中設定 檔案 頁面設定 工作表 列印標題 3.另存為網頁,改字尾名 h...

JSP報表列印的一種簡單解決方案

1.在word或excel中製作報表的樣式。excel的行高和列寬單位無法用mm或cm表示。需要計算。在1024 768下,1cm約為38畫素。以此為基準,可計算並控制報表的行列位置。2.在word中設定 標題行重複 在excel中設定 檔案 頁面設定 工作表 列印標題 3.另存為網頁,改字尾名 h...