-1

接続を受け入れるマスタープロセスがあり、リクエストに応じて「exec」saプロセスがあります。プロセスが次のエラーで断続的にクラッシュします。

segfault at 11 ip 000000004daa242b sp 00000000ffdc4b18 error 4 in libc-2.5.so[4da32000+153000]

これをデバッグするにはどうすればよいですか? libc からのこれは、どのコードがこれを引き起こしているのかを始めるという点でもあまり役に立ちません。

ポインタはありますか?

4

1 に答える 1

4

ポインター:

0x00000001: 最初に行うことは、デバッガーまたは境界チェッカーを使用できるかどうかを確認することです。それがクラッシュを再現する場合は、次を探します (コア ダンプが libc にあることを考慮して): 破損したデータ (異常な値を持つコールスタックまたはパラメーター)。

0x00000002: それでもクラッシュが再現されない場合は、libc 関数に送信される値にログを追加し、何かをキャッチするかどうかを確認してください。

0x00000003: ロギングで何も得られない場合は、アプリケーションの一部を無効にし始め、コア ダンプが発生しなくなるか、毎回発生するまで人為的に負荷を増やします。確認すべきことの 1 つは、コア ダンプが高ストレス時にのみ発生している可能性があることです (これが断続的なクラッシュの原因である可能性があります)。操作を繰り返すことで (つまり、競合状態が発生する可能性があるため、100 回ずつ実行して、競合状態になるかどうかを確認します)。

于 2013-02-21T08:36:39.217 に答える