PHP中的分段错误(内核转储)

PHP中的分段错误(内核转储),php,Php,好的,我在Ubuntu的命令行上运行一个PHP应用程序,它以“分段错误(内核转储)”结束 如何从这里调试它?我非常确定没有内存泄漏,因为我已经用get\u memory\u usage()检查过了 编辑:好的,正如Brendan和Ulricht所解释的,我试过gdb。那根本不是我的环境,所以很抱歉有新来的问题 我在gdb下运行了我的代码,得到了错误。这里是前22行 (gdb) bt #0 0x00000000006f5d36 in ?? () #1 0x00000000006f7625 in

好的,我在Ubuntu的命令行上运行一个PHP应用程序,它以“分段错误(内核转储)”结束

如何从这里调试它?我非常确定没有内存泄漏,因为我已经用get\u memory\u usage()检查过了

编辑:好的,正如Brendan和Ulricht所解释的,我试过gdb。那根本不是我的环境,所以很抱歉有新来的问题

我在gdb下运行了我的代码,得到了错误。这里是前22行

(gdb) bt
#0  0x00000000006f5d36 in ?? ()
#1  0x00000000006f7625 in ?? ()
#2  0x00000000006f7b68 in zend_parse_parameters ()
#3  0x0000000000610584 in zif_array_rand ()
#4  0x00000000006dd9bb in dtrace_execute_internal ()
#5  0x000000000079da15 in ?? ()
#6  0x0000000000717748 in execute_ex ()
#7  0x00000000006dd8b9 in dtrace_execute_ex ()
#8  0x000000000079e060 in ?? ()
#9  0x0000000000717748 in execute_ex ()
#10 0x00000000006dd8b9 in dtrace_execute_ex ()
#11 0x000000000079e060 in ?? ()
#12 0x0000000000717748 in execute_ex ()
#13 0x00000000006dd8b9 in dtrace_execute_ex ()
#14 0x000000000079e060 in ?? ()
#15 0x0000000000717748 in execute_ex ()
#16 0x00000000006dd8b9 in dtrace_execute_ex ()
#17 0x000000000079e060 in ?? ()
#18 0x0000000000717748 in execute_ex ()
#19 0x00000000006dd8b9 in dtrace_execute_ex ()
#20 0x000000000079e060 in ?? ()
#21 0x0000000000717748 in execute_ex ()
#22 0x00000000006dd8b9 in dtrace_execute_ex ()
根据,我应该得到“execute”调用,而不是“execute_ex”。同样的事情

以下命令无论如何不会返回函数名(在完成第6帧之后):


Edit2:我很想知道为什么会投反对票。我认为这是一个有效的问题,我还没有发现类似的PHP问题。如果有,您可以自由发表评论。

有几件事可以指出错误,但第一件事是在gdb中运行可执行文件:

> gdb /usr/bin/php
....
(gdb) run path/to/script

注意,您还可以将转储的内核加载到gdb中。找出问题原因的其他工具是strace和valgrind。

这两者根本没有关系。那个家伙知道他因为mysql而有一个segfault,而我有一个segfault,我正试图找出它的来源。@BrendanAshworth:谢谢,我在我原来的帖子中回复了。谢谢,我在我原来的帖子中回复了。
> gdb /usr/bin/php
....
(gdb) run path/to/script