プログラムがクラッシュしている場所を特定するには、クラッシュ時のプログラムのメモリーイメージであるコアファイルの調査が必要になることがあります。where コマンドを使用すると、コアダンプ時にプログラムが実行されていた場所を特定できます。where コマンドを参照してください。
$ dbx program-name core
または
$ dbx - core
次の例では、プログラムがセグメント例外でクラッシュし、コアダンプが作成されています。まず、dbx が起動され、コアファイルがロードされます。次に、where コマンドによってスタックトレースが表示されます。これにより、ファイル foo.c の 9 行目でクラッシュが発生したことが示されます。
% dbx a.out core Reading a.out core file header read successfully Reading ld.so.1 Reading libc.so.1 Reading libdl.so.1 Reading libc_psr.so.1 program terminated by signal SEGV (no mapping at the fault address) Current function is main 9 printf("string ’%s’ is %d characters long\n", msg, strlen(msg)); (dbx) where [1] strlen(0x0, 0x0, 0xff337d24, 0x7efefeff, 0x81010100, 0xff0000), at 0xff2b6dec =>[2] main(argc = 1, argv = 0xffbef39c), line 9 in "foo.c" (dbx)
コアファイルのデバッグの詳細については、既存のコアファイルのデバッグを参照してください。呼び出しスタックの使用の詳細については、呼び出しスタックを確認するを参照してください。