【问题标题】:Debugging hhvm segmentation faults调试 hhvm 分段错误
【发布时间】:2014-04-02 17:30:10
【问题描述】:

如何在使用 hhvm 运行 php 脚本时调试分段错误?当我运行它时,我得到:

Core dumped: Segmentation fault
Segmentation fault

在堆栈跟踪中,当我调用同一对象的方法时会出错。

是否有任何代码分析器可能会告诉我错误的 php 代码或以某种方式获得更详细的错误或堆栈跟踪?

当我使用时

    $r = mysql_query($sql, $link); //crashes
    $r = mysql_query($sql); //does not crash

【问题讨论】:

    标签: hhvm


    【解决方案1】:

    调试构建

    为了更好地了解崩溃,您需要构建 HHVM 以进行调试。

    这可以通过将-DCMAKE_BUILD_TYPE=Debug 添加到您的cmake 来完成。

    更多信息可以在这里找到: https://github.com/facebook/hhvm/wiki/Reporting-Crashes


    堆栈跟踪

    您还可以在/tmp 目录中找到名为stacktrace.[number].log 的跟踪。

    如果在检查堆栈跟踪后发现错误不在您身边,最好在此处提交新问题: https://github.com/facebook/hhvm/issues


    更好的日志记录

    一旦问题不是段错误,您就可以从日志记录中获得更多收益。

    Here is how my hhvm.hdf log section looks like.

    【讨论】:

    • 我确实分析了堆栈跟踪。不幸的是,我不知道如何解释这些信息,也不知道如何确定错误是否在我身边。
    • 你能分享堆栈跟踪吗?此外,代码的 sn-p 也会有所帮助。我认为没有任何自动化工具可以确定错误是否在您身边。如果代码看起来很简单并且在 php 5.5 上运行良好,那么可能是由于 hhvm 中的错误。
    • 现在,我可以分享堆栈跟踪:pastebin.com/UHT6cLFp。我将尝试创建一个重现相同错误的代码
    • 好的,您是否也在运行最新版本的 hhvm? (3.0.1) 版本 3 上的 mysqli_fetch_assoc 最近出现了一个问题(但这并没有导致段错误)。 github.com/facebook/hhvm/issues/2218
    • 如果没有更大的代码 sn-p 和报告的错误,几乎不可能提供任何进一步的帮助。可能是 mysql_query 正在使用string $link,并且由于类型不匹配而崩溃。但我不确定如果没有其余代码,这将如何发生。
    猜你喜欢
    • 2014-07-19
    • 1970-01-01
    • 2012-05-11
    • 2015-02-18
    • 2013-02-10
    • 2012-07-06
    • 2023-03-23
    • 1970-01-01
    • 2016-09-07
    相关资源
    最近更新 更多