1. ホーム
  2. c++

[解決済み] C/C++でプログラム的にコアダンプを発生させる方法

2023-01-08 07:24:48

質問

C++ アプリケーションの特定の場所でコア ダンプを強制的に実行したいのですが、どうすればよいでしょうか。

私は、次のようなことをすることによって、それを行うことができることを知っています。

int * crash = NULL;
*crash = 1;

しかし、私はよりクリーンな方法があるかどうかを知りたいのですが?

ちなみに私はLinuxを使っています。

どのように解決するのですか?

シグナル番号6の上昇( SIGABRT ) を発生させるのも一つの方法です (ただし、SIGABRT は 必須 はすべてのPOSIX実装で6である必要があるわけではないことに注意してください。 SIGABRT の値そのものを使用することをお勧めします。)

#include <signal.h>
: : :
raise (SIGABRT);

呼び出し abort() を呼び出すと、コアダンプも発生しますし、さらにこんなこともできます。 を使わずに を呼び出すことで、プロセスを終了させることもできます。 fork() の後に abort() を子ページのみで使用する場合 - 参照 この答え をご覧ください。