gpt4 book ai didi

php - PHP 中的段错误(核心已转储)

转载 作者:可可西里 更新时间:2023-10-31 23:30:48 25 4
gpt4 key购买 nike

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

我该如何从这里调试它?我很确定没有内存泄漏,因为我已经用 get_memory_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 ()

根据 https://bugs.php.net/bugs-generating-backtrace.php ,我应该得到“执行”电话,而不是“execute_ex”。一样吗?

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

print (char *)(executor_globals.function_state_ptr->function)->common.function_name
Attempt to extract a component of a value that is not a structure.

Edit2:我很高兴知道为什么反对票。我认为这是一个有效的问题,我还没有为 PHP 找到类似的问题。如果有,您可以随意发表评论。

最佳答案

有几件事可以查明错误,但首先是在 gdb 中运行可执行文件:

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

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

关于php - PHP 中的段错误(核心已转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26316093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com