1

我有一个程序崩溃了

segfault at 1 ip 0000000000000001 sp 0000000008077d60 error 14

每当它没有连接到真正的终端时,例如./program > log.txt &会崩溃。正常运行它不会导致这种奇怪的行为。我想看看 gdb 是否可以帮助我找到原因,但当然只是在 gdb 中运行它不会触发错误。

然而,什么是

echo r | gdb ./program

但是当程序崩溃时,gdb 会立即退出:

Program received signal SIGSEGV, Segmentation fault.
0x00000001 in ?? ()
(gdb) quit
A debugging session is active.

    Inferior 1 [process 15434] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]

我已经尝试过echo -e "r\nbt" | gdb了,但它的行为不会有任何不同。

4

1 回答 1

3

做就是了:

gdb ./program

一旦你在那里,做:

run < log.txt

直接输入您的输入,或:

run > log.txt

根据需要重定向输出。

于 2013-10-26T04:10:08.980 回答