Linux/Unixユーザーとして、私たちはしばしば問題に直面しています。長い間問題を解決しながらデバッグ技術を開発します。
これで、一般的なUNIXの問題をデバッグする際の良い原則、方法、またはベストプラクティスは何ですか?
一般ユーザーとして問題の原因を見つけやすくするには、どのツールが必要ですか?
答え1
アプローチは問題の種類によって異なります。
一般的に言えば」スマートに質問する方法Eric S. RaymondとRick Moenを書く「時には問題に焦点を当て、問題の重要な部分を検討したことを確認するのに役立つ便利なヒントがあります。
デバッグの最初の情報ソースは、システム/アプリケーションによって作成されたログファイルです。一般的な場所は端末またはです/var/log/
。多くのアプリケーションはさまざまな種類のログレベルをサポートしており、利用可能なメッセージが見つからない場合はログレベルを上げる必要があります。通常、-v
より多くのメッセージを取得するには、詳細情報を表示するスイッチがあります。
まだ使えませんか?構成ファイル、アプリケーションに必要なファイルの権限を確認してください。たとえば、システムロガーの設定を変更する必要があるかもしれません/etc/syslog-ng.conf
。
エラーメッセージがある場合は、通常、Google検索を介して問題を説明する掲示板アイテムまたはWebスレッドにリンクされます。おそらくそこで解決策を見つけることができます。プロジェクトのユーザーメーリングリスト、掲示板、IRCチャンネルも非常に便利です。
メッセージなしでアプリがクラッシュすることがあります。コードの読み取りと修正に加えて、アプリケーションフローを見つけるための素晴らしいツールがありますstrace
。
このツールはシステムコールとシグナルを追跡します。アプリケーションがエラーをキャッチしても、systraceで問題を見つけることができます。
別の方法はデバッグアプリケーションを使用することですgdb
。あなたは上級ユーザーであり、それを使用するために何をすべきかを知っておく必要があります。
答え2
単一で普遍的なデバッグの原則が必要な場合は、システムがどのように機能するかについてできるだけ学ぶことです。システムの各コンポーネントと各コンポーネントのエラーモードを理解します。最近変更したコンポーネントは何であるか、それ自体が変更または失敗した可能性があるコンポーネントは何であるかを記録してください。
特定の情報を探している場合は、echoxの回答に役立つ情報がたくさんあります。
答え3
デビッド・アルガンス(David Argans)が書いた。非常に良いデバッグ本、私の考えでは。それはまたセットを含んでいますデバッグガイド。
最も重要なのは、一般的な(領域)知識と経験がパターンを観察するのに非常に役立つことです。物事がどのように作成されるかを研究し、分解します。定期的なメンテナンスを行います。いくつかのあいまいな実験を行います。読んで、読んで、読んでください。働くこと。書き続けてください。他の人が問題を解決するのを手伝ってください。戦闘を選択してください。落ち着いたままにしてください。笑う:)