ToDo:
今日もらったバグレポをエアデバッグしてて、あーこういうことだなってアタリがついた事例
(gdb) p main
$1 = {int ()} 0x400596 <main>
つまりシンボルのある綺麗なバイナリです
(gdb) r Starting program: /ssd/test/a.out Program terminated with signal SIGABRT, Aborted. The program no longer exists. (gdb) bt No stack.
abort してるのに "The program no longer exists." ヘンすぎるやろ。というわけで以下のコードがこういう挙動を起こすことに気付いた。なるほどねー
$ cat vfork_fail.c
#include <stdlib.h>
#include <unistd.h>
int main() {
if (vfork())
sleep(1);
else
abort();
}
(20:33)
| 前 | 2016年 1月 |
次 | ||||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 | ||||||
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。