86 lines · plain
1.. SPDX-License-Identifier: GPL-2.02 3.. include:: ../disclaimer-zh_TW.rst4 5:Original: :doc:`../../../admin-guide/bug-bisect`6 7:譯者:8 9 吳想成 Wu XiangCheng <bobwxc@email.cn>10 胡皓文 Hu Haowen <2023002089@link.tyut.edu.cn>11 12二分(bisect)缺陷13+++++++++++++++++++14 15(英文版)最後更新:2016年10月28日16 17引言18=====19 20始終嘗試由來自kernel.org的源代碼構建的最新內核。如果您沒有信心這樣做,請將21錯誤報告給您的發行版供應商,而不是內核開發人員。22 23找到缺陷(bug)並不總是那麼容易,不過仍然得去找。如果你找不到它,不要放棄。24儘可能多的向相關維護人員報告您發現的信息。請參閱MAINTAINERS文件以瞭解您所25關注的子系統的維護人員。26 27在提交錯誤報告之前,請閱讀“Documentation/admin-guide/reporting-issues.rst”。28 29設備未出現(Devices not appearing)30====================================31 32這通常是由udev/systemd引起的。在將其歸咎於內核之前先檢查一下。33 34查找導致缺陷的補丁35===================36 37使用 ``git`` 提供的工具可以很容易地找到缺陷,只要缺陷是可復現的。38 39操作步驟:40 41- 從git源代碼構建內核42- 以此開始二分 [#f1]_::43 44 $ git bisect start45 46- 標記損壞的變更集::47 48 $ git bisect bad [commit]49 50- 標記正常工作的變更集::51 52 $ git bisect good [commit]53 54- 重新構建內核並測試55- 使用以下任一與git bisect進行交互::56 57 $ git bisect good58 59 或::60 61 $ git bisect bad62 63 這取決於您測試的變更集上是否有缺陷64- 在一些交互之後,git bisect將給出可能導致缺陷的變更集。65 66- 例如,如果您知道當前版本有問題,而4.8版本是正常的,則可以執行以下操作::67 68 $ git bisect start69 $ git bisect bad # Current version is bad70 $ git bisect good v4.871 72 73.. [#f1] 您可以(可選地)在開始git bisect的時候提供good或bad參數74 ``git bisect start [BAD] [GOOD]``75 76如需進一步參考,請閱讀:77 78- ``git-bisect`` 的手冊頁79- `Fighting regressions with git bisect(用git bisect解決迴歸)80 <https://www.kernel.org/pub/software/scm/git/docs/git-bisect-lk2009.html>`_81- `Fully automated bisecting with "git bisect run"(使用git bisect run82 來全自動二分) <https://lwn.net/Articles/317154>`_83- `Using Git bisect to figure out when brokenness was introduced84 (使用Git二分來找出何時引入了錯誤) <http://webchick.net/node/99>`_85 86