diff options
Diffstat (limited to 'Documentation/translations/zh_TW/admin-guide/bug-hunting.rst')
-rw-r--r-- | Documentation/translations/zh_TW/admin-guide/bug-hunting.rst | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/Documentation/translations/zh_TW/admin-guide/bug-hunting.rst b/Documentation/translations/zh_TW/admin-guide/bug-hunting.rst index 9a3de3bff5e7..631fd2650929 100644 --- a/Documentation/translations/zh_TW/admin-guide/bug-hunting.rst +++ b/Documentation/translations/zh_TW/admin-guide/bug-hunting.rst @@ -48,8 +48,8 @@ [<c1549f43>] ? sysenter_past_esp+0x40/0x6a ---[ end trace 6ebc60ef3981792f ]--- -這樣的堆棧跟蹤提供了足夠的信息來識別內核原始碼中發生錯誤的那一行。根據問題的 -嚴重性,它還可能包含 **「Oops」** 一詞,比如:: +這樣的堆棧跟蹤提供了足夠的信息來識別內核源代碼中發生錯誤的那一行。根據問題的 +嚴重性,它還可能包含 **“Oops”** 一詞,比如:: BUG: unable to handle kernel NULL pointer dereference at (null) IP: [<c06969d4>] iret_exc+0x7d0/0xa59 @@ -58,17 +58,17 @@ ... 儘管有 **Oops** 或其他類型的堆棧跟蹤,但通常需要找到出問題的行來識別和處理缺 -陷。在本章中,我們將參考「Oops」來了解需要分析的各種堆棧跟蹤。 +陷。在本章中,我們將參考“Oops”來了解需要分析的各種堆棧跟蹤。 如果內核是用 ``CONFIG_DEBUG_INFO`` 編譯的,那麼可以使用文件: `scripts/decode_stacktrace.sh` 。 -連結的模塊 +鏈接的模塊 ----------- -受到汙染或正在加載/卸載的模塊用「(…)」標記,汙染標誌在 -`Documentation/admin-guide/tainted-kernels.rst` 文件中進行了描述,「正在被加 -載」用「+」標註,「正在被卸載」用「-」標註。 +受到污染或正在加載/卸載的模塊用“(…)”標記,污染標誌在 +`Documentation/admin-guide/tainted-kernels.rst` 文件中進行了描述,“正在被加 +載”用“+”標註,“正在被卸載”用“-”標註。 Oops消息在哪? @@ -81,19 +81,19 @@ syslog文件,通常是 ``/var/log/messages`` (取決於 ``/etc/syslog.conf`` 有時 ``klogd`` 會掛掉,這種情況下您可以運行 ``dmesg > file`` 從內核緩衝區 讀取數據並保存它。或者您可以 ``cat /proc/kmsg > file`` ,但是您必須適時 -中斷以停止傳輸,因爲 ``kmsg`` 是一個「永無止境的文件」。 +中斷以停止傳輸,因爲 ``kmsg`` 是一個“永無止境的文件”。 -如果機器嚴重崩潰,無法輸入命令或磁碟不可用,那還有三個選項: +如果機器嚴重崩潰,無法輸入命令或磁盤不可用,那還有三個選項: (1) 手動複製屏幕上的文本,並在機器重新啓動後輸入。很難受,但這是突然崩潰下 - 唯一的選擇。或者你可以用數位相機拍下屏幕——雖然不那麼好,但總比什麼都沒 - 有好。如果消息滾動超出控制台頂部,使用更高解析度(例如 ``vga=791`` ) - 引導啓動將允許您閱讀更多文本。(警告:這需要 ``vesafb`` ,因此對「早期」 + 唯一的選擇。或者你可以用數碼相機拍下屏幕——雖然不那麼好,但總比什麼都沒 + 有好。如果消息滾動超出控制檯頂部,使用更高分辨率(例如 ``vga=791`` ) + 引導啓動將允許您閱讀更多文本。(警告:這需要 ``vesafb`` ,因此對“早期” 的Oppses沒有幫助) (2) 從串口終端啓動(參見 :ref:`Documentation/admin-guide/serial-console.rst <serial_console>` ), - 在另一台機器上運行數據機然後用你喜歡的通信程序捕獲輸出。 + 在另一臺機器上運行調制解調器然後用你喜歡的通信程序捕獲輸出。 Minicom運行良好。 (3) 使用Kdump(參閱 Documentation/admin-guide/kdump/kdump.rst ),使用 @@ -103,7 +103,7 @@ syslog文件,通常是 ``/var/log/messages`` (取決於 ``/etc/syslog.conf`` 找到缺陷位置 ------------- -如果你能指出缺陷在內核原始碼中的位置,則報告缺陷的效果會非常好。這有兩種方法。 +如果你能指出缺陷在內核源代碼中的位置,則報告缺陷的效果會非常好。這有兩種方法。 通常來說使用 ``gdb`` 會比較容易,不過內核需要用調試信息來預編譯。 gdb @@ -187,7 +187,7 @@ GNU 調試器(GNU debugger, ``gdb`` )是從 ``vmlinux`` 文件中找出OOP objdump ^^^^^^^^ -要調試內核,請使用objdump並從崩潰輸出中查找十六進位偏移,以找到有效的代碼/匯 +要調試內核,請使用objdump並從崩潰輸出中查找十六進制偏移,以找到有效的代碼/匯 編行。如果沒有調試符號,您將看到所示例程的彙編程序代碼,但是如果內核有調試 符號,C代碼也將可見(調試符號可以在內核配置菜單的hacking項中啓用)。例如:: @@ -197,7 +197,7 @@ objdump 您需要處於內核樹的頂層以便此獲得您的C文件。 -如果您無法訪問原始碼,仍然可以使用以下方法調試一些崩潰轉儲(如Dave Miller的 +如果您無法訪問源代碼,仍然可以使用以下方法調試一些崩潰轉儲(如Dave Miller的 示例崩潰轉儲輸出所示):: EIP is at +0x14/0x4c0 @@ -234,9 +234,9 @@ objdump 報告缺陷 --------- -一旦你通過定位缺陷找到了其發生的地方,你可以嘗試自己修復它或者向上游報告它。 +一旦你通過定位缺陷找到了其發生的地方,你可以嘗試自己修復它或者向上遊報告它。 -爲了向上游報告,您應該找出用於開發受影響代碼的郵件列表。這可以使用 ``get_maintainer.pl`` 。 +爲了向上遊報告,您應該找出用於開發受影響代碼的郵件列表。這可以使用 ``get_maintainer.pl`` 。 例如,您在gspca的sonixj.c文件中發現一個缺陷,則可以通過以下方法找到它的維護者:: @@ -251,7 +251,7 @@ objdump 請注意它將指出: -- 最後接觸原始碼的開發人員(如果這是在git樹中完成的)。在上面的例子中是Tejun +- 最後接觸源代碼的開發人員(如果這是在git樹中完成的)。在上面的例子中是Tejun 和Bhaktipriya(在這個特定的案例中,沒有人真正參與這個文件的開發); - 驅動維護人員(Hans Verkuil); - 子系統維護人員(Mauro Carvalho Chehab); |