如何为hhvm致命错误获取更相关的stacktrace(文件名和行号)?

时间:2019-05-13 15:52:57

标签: debugging error-handling hhvm

我有一个旧的hhvm Restful API。

我对其代码库进行了一些更改,现在我的本地服务器抛出了

Syntax only allowed in Hack files (<?hh) or with -v 
Eval.EnableHipHopSyntax=true

我当前在php.ini中的hhvm特定设置为:

; hhvm specific
hhvm.log.level = Warning
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
hhvm.mysql.typed_results = false
date.timezone="Europe/Berlin"
hhvm.libxml.ext_entity_whitelist = file,http

我在以下位置查看了日志

cat /var/log/hhvm/error.log 

但是它是空的。

我不想允许黑客使用文件语法,但是我想要更多有关错误发生位置的信息。

我至少要知道在哪个文件中创建了错误。很高兴能在哪一行中出现哪一行字符。该api是内部的,因此暂时不公开这些信息。

现在我正在遍历git diff,但这不是查找违规代码的非常有效的方法。

1 个答案:

答案 0 :(得分:0)

这不会将错误暴露给服务器响应,但会检查您的沙箱设置。

错误日志可能位于您的hhvm 沙盒中,而不位于主hhvm文件夹中:

/var/log/hhvm/sandbox/error.log

您将在错误上下文中找到相关信息:

[Mon May 13 15:40:32 2019] [hphp] [25:7fe693fff700:413:000001] [] \nFatal error: Syntax only allowed in Hack files (<?hh) or with -v Eval.EnableHipHopSyntax=true in /var/www/service/src/Dreamlines/BookingService/Bundle/OperatorBundle/Soap/Call/CallBuilderFactory.php on line 177