プロセスを停止せずにGDBトレースをキャプチャして記録します。

プロセスを停止せずにGDBトレースをキャプチャして記録します。

まず、状況の簡単な説明です。一種のギャラリーのモニターの近くに隠されているコンピュータが作品の静かな労働者として機能します。プログラマーの最善の意図にもかかわらず、通行人がディスプレイと対話する方法によっては、タイトルが時々クラッシュすることがあります。稼働時間(または同様のもの)が非常に重要であるため、プログラマーはbashループを使用して関連プログラムを自動的に再起動するようにコンピューターを設定します。

開発者は競合の原因が何であるかを判断することに興味がありますが、開発者が知っている限り、GDBを介してプログラムを実行すると、競合中にプロセスが停止します。これにより、開発者は「バックトラッキング」をクリックして原因を見つけることができますが、開発者が関連するギャラリーに行って確認するまで、その部分は機能しません。これは正しくありません。

この勇敢な開発者は、クラッシュ時にプロセスを自動的に再起動する元の動作を引き続き許可しながら、GDBを介して各クラッシュのバックトラッキングをどのように保護しますか(多分どこかに保存できます)。

ベストアンサー1

ulimit -c 1073741824プログラムを開始する前に実行してください。次回プログラムがクラッシュすると、core.<PID>作業ディレクトリ(名前)にコアダンプが生成されます。その後、GDBを使用していつでもコアを開くことができます。

ulimit -c XXXXX分割エラーが発生したときに生成されるコアダンプファイルの最大サイズを設定します。デフォルトでは、これは0コアがダンプされないことを意味します。

おすすめ記事