【发布时间】:2013-11-05 07:45:25
【问题描述】:
我有一个程序崩溃了
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,但它的行为不会有任何不同。
【问题讨论】:
-
在 gdb 中,您应该能够在运行命令上使用重定向来重定向程序的标准输出:
(gdb) run > outfile这样可以重现问题吗?