ホームページ  >  記事  >  システムチュートリアル  >  coredumpctl を使用してバグを見つけて修正する

coredumpctl を使用してバグを見つけて修正する

PHPz
PHPz転載
2024-02-16 09:45:181226ブラウズ

残念な事実は、すべてのソフトウェアにはバグがあり、一部のバグはシステムのクラッシュを引き起こす可能性があるということです。この問題が発生すると、多くの場合、「コア ダンプ」と呼ばれるデータ ファイルがディスク上に残ります。このファイルには、システムがクラッシュしたときの関連データが含まれており、クラッシュが発生した理由を特定するのに役立ちます。多くの場合、開発者は、クラッシュにつながった命令の流れを示す「トレースバック」の形式でデータを要求します。開発者はこれを使用してバグを修正し、システムを改善できます。システムがクラッシュした場合に、トレースバックを簡単に生成する方法を次に示します。
使用 coredumpctl 查找并处理 BUG

coredumpctlの使用を開始する

ほとんどの Fedora システムは、自動エラー報告ツール (ABRT) [1] を使用して、クラッシュ ファイルを自動的にキャプチャし、バグをログに記録します。ただし、サービスを無効にした場合、またはパッケージを削除した場合は、この方法が役立つ場合があります。

システムクラッシュが発生した場合は、まず最新のソフトウェアを実行していることを確認してください。多くの場合、アップデートには、重大なエラーやクラッシュの原因となることが判明したバグの修正が含まれています。アップデート後、エラーの原因となった状況を再現してみてください。

それでもクラッシュが発生する場合、またはすでに最新のソフトウェアを実行している場合は、役立つ coredumpctl ツールがあります。このプログラムは、クラッシュの検出と処理に役立ちます。システム上のすべてのコア ダンプのリストを表示するには、次のコマンドを実行します。

リーリー

予想より長いリストが表示されても驚かないでください。場合によっては、システム コンポーネントがバックグラウンドで静かにクラッシュし、自動的に回復することがあります。今日のダンプをすばやく見つける簡単な方法は、-since オプションを使用することです:

リーリー

「PID」列には、ダンプを識別するために使用されるプロセス ID が含まれます。この番号は後で必要になるため、メモしてください。または、覚えたくない場合は、次を使用して変数に代入します。

リーリー

コア ダンプに関する情報を表示するには、次のコマンドを使用します ($MYPID 変数を使用するか、PID 番号を置き換えます)。 リーリー

debuginfo パッケージをインストールします
デバッグ シンボルは、コア ダンプ内のデータと元のコード内の命令の間でエスケープします。このシンボリック データは非常に大きくなる可能性があります。ほとんどのユーザーが Fedora システムで実行するパッケージとは異なり、シンボルは「debuginfo」パッケージとしてインストールされます。どの debuginfo パッケージをインストールする必要があるかを判断するには、まず次のコマンドを実行します:

リーリー

これにより、画面に多くの情報が表示される場合があります。最後の行では、

dnf を使用してさらに debuginfo パッケージをインストールするように指示されている場合があります。 sudo [2] を使用してこのコマンドを実行して、インストールします: リーリー

次に、

coredumpctl gdb $MYPID コマンドを再試行します。 他のシンボルがトレースバックで展開されるため、これを繰り返し実行する必要がある場合があります。

トレースバックのキャプチャ
デバッガーで次のコマンドを実行して情報をログに記録します:
リーリー

ページネーションをオフにすると効果がある場合があります。長いトレースバックの場合、これにより時間が節約されます。

リーリー

ここでトレースバックを実行します:

リーリー

これで、

quit

と入力してデバッガーを終了できます。 mybacktrace.txt バグや問題に添付できるトレース情報が含まれています。または、誰かとリアルタイムで共同作業している場合は、テキストをペーストビンにアップロードできます。いずれにしても、開発者に問題解決のためのより多くの支援を提供できるようになりました。

以上がcoredumpctl を使用してバグを見つけて修正するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlinuxprobe.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。