drupal 页面的 WSOD。如何使用gdb进行调试?
我的 Drupal 站点中的单个用户的单个页面出现 WSOD(死机白屏)。我了解到这是由于分段错误造成的。我无法发现错误在哪里?如何使用 gdb 调试我的 PHP 代码???
I got a WSOD (white screen of death) in my Drupal site for a single page for a single user. I have learned that it is due to segmentation error. I couldnt spot where the error is?? How do I debug my PHP code using gdb???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在极端情况下,我最终会使用 Linux
strace
,但主要是在问题涉及内部内容(例如标头、堆栈问题和崩溃)时才这样做。更 PHP 风格的方法是使用 xdebug,因为它是专门针对 PHP 的。
要使用 GDB,请像在 GDB 下使用的任何其他程序一样使用。如果您无法做到这一点,我很确定您在实际使用 GDB 方面也不会走得太远。
哦,这是一个救命的 PHP 片段:
注 1: 如果您正在处理服务器崩溃的问题,那么上面的方法很可能不起作用。不过,这种情况非常罕见。
注意2:如果
register_shutdown_function
已经在其他地方使用过,请务必重复一遍,以保证最终执行,例如:In extreme circumstances, I end up using Linux
strace
, but I do this mainly when the issue concerns internal stuff (such as headers, stack issues and crashes).The more PHP-esque way is to use xdebug, since it's specifically for PHP.
To use GDB, use like any other program you would use under GDB. If you can't get that far, I'm pretty sure you won't get far in actually using GDB either.
Oh, and here's a life-saver PHP snippet:
Note 1: If you're dealing with server crashes, there's a good chance the above won't work. This is quite rare though.
Note 2: If
register_shutdown_function
is already used elsewhere, be sure to repeat it, in order to ensure final execution, example:我不知道如何使用 gdb 来做到这一点,但这可能很有用:
我猜XDebug 可以进一步帮助您
I dont know how to do it with gdb, but this could be usefull:
And i guess XDebug could help you further
我尝试将 display_errors 设置为 true,但该网站对我不起作用。
但幸运的是,我不必进行调试,问题出在我创建的视图上。
谢谢大家
I tried to set display_errors true for the site which didnt work for me.
But luckily I didnt have to go for the debugging, issue was with view that I had created.
Thank you all
该错误很可能出现在您的 Web 服务器错误日志中。先看看那里。
The error is most likely in you web server error logs. Look there first.