我有一个产生分段错误的程序,我在Linux上运行.
直接运行程序,我得到:
Segmentation fault (core dumped)
当我在Bash脚本中运行它时,我得到:
./script.sh: line 1: 4095 Segmentation fault (core dumped) ./prog
这个数字(在我的例子中为4095)每次都不同.似乎总是增加; 如果我快速运行脚本很多次,它似乎每次增加5.
这个数字告诉我什么?
它是崩溃的应用程序的PID.每次运行应用程序时,它都有一个进程ID(PID).当您的bash脚本运行bash时,确定您的应用程序崩溃并列出其PID以及崩溃的原因.
您始终可以在/ proc/pid中查找有关UNIX系统中任何进程的信息,这可能非常有用.请参阅:http://man7.org/linux/man-pages/man5/proc.5.html
使用该ps
命令列出进程时,应用程序的PID列在其旁边,如果需要,也可以以编程方式检索,请参阅:http://linux.die.net/man/2/getpid
如果你有一个挂起的应用程序,你可以将一个调试器挂钩,让你知道它的PID和它的名字.例如,gdb myprogram PID