在 PHP 命令行上显示完整的堆栈跟踪

问题描述 投票:0回答:2

问题

我的 PHP 堆栈跟踪缩写为:

Stack trace:
#0 /www/html/table/app/create.php(128): SoapClient->__call('call', Array)
#1 /www/html/table/app/create.php(128): SoapClient->call('5e81ad4c12668ec...', 'table.ad...', Array)

预期结果

我想查看从命令行运行 php 时被 ... 隐藏的部分。如何让 php 显示完整消息?

php debugging php-5.3
2个回答
5
投票

您可以将其包围在

try ... catch
中,然后对异常执行
var_dump

try {

    // the code that throws an exception
} catch ( Exception $e ) {

   var_dump( $e->getTrace() );
}

0
投票

有同样的问题;显然 PHP 默认情况下将堆栈跟踪中的参数限制为 15 个字节。在 8.0 PHP 中添加了一个新的 .ini 设置

zend.exception_string_param_max_len
来扩展默认设置。将以下内容添加到您的 php.ini 中,您应该去掉省略号:

zend.exception_string_param_max_len=4096

请注意,有一个选项

zend.exception_ignore_args=false
可以隐藏所有这些参数,因此请确保未启用该选项。请参阅本文了解完整详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.