0

私は GDB でプログラムを試していました。「break x」を実行してから、段階的に実行していました。したがって、終了したい場合は「終了」と言うと、「劣ったプロセスが強制終了されるという警告メッセージ」が返されます。「Y」を実行するとどうなりますか。どうにかしてその過程から抜け出したいからです。そして、実行中のプロセスをアタッチして終了するとどうなりますか。デタッチされるか、実行中のプロセスが終了しますか? ソースが異なれば、アイデアも異なります。お知らせ下さい。

また、プログラムを実行しようとすると、ピーターのチュートリアルの標準プログラムを実行しています。16行目にステップを実行すると、このエラーが発生します。

 _IO_puts (str=0x40075e "In display():") at ioputs.c:35
 35 ioputs.c: No such file or directory.
     in ioputs.c

プログラム

  14 void display(int z, int *zptr) {
  15        printf("In display():\n");
  **16       printf("   z is %d and is stored at %p.\n", z, &z);**
  17       printf("   zptr points to %p which holds %d.\n", zptr, *zptr);
  18   }
4

1 に答える 1

1

デバッガーでプロセスを実行してデバッガーを終了すると、実行中のプログラムは (SIGKILL の場合と同様に) 強制終了されます。プログラムを正常に終了するには、プログラムが終了するまでcontinue(多数の無視を伴う可能性があります) と言います。

実行中のプログラムにデバッガーをアタッチしてデバッガーを終了すると、デバッガーはデタッチされるだけで、プログラムは事前に強制終了しない限り実行を続けます。

于 2012-04-14T23:50:51.463 に答える