用于drupal页面的WSOD。如何使用gdb调试?

时间:2011-03-25 07:50:52

标签: php drupal gdb wsod

我在Drupal网站上获得了一个WSOD(白屏死机),可以为单个用户提供单页。我了解到这是由于分段错误。我无法发现错误在哪里?如何使用gdb ???

调试我的PHP代码

4 个答案:

答案 0 :(得分:2)

在极端情况下,我最终使用Linux strace,但我主要是在问题涉及内部内容(例如标题,堆栈问题和崩溃)时这样做。

使用xdebug的PHP方式越多,因为它专门用于PHP。

要使用GDB,请像在GDB下使用的任何其他程序一样使用。如果你不能做到这一点,我很确定你在实际使用GDB方面也不会有太大的影响。

哦,这是一个节省生命的PHP代码段:

function the_end(){
    if(($err=error_get_last()))
        die('<pre>'.print_r($err,true).'</pre>');
}
register_shutdown_function('the_end');

注1:如果您正在处理服务器崩溃,那么上述内容很可能无法正常工作。这是非常罕见的。

注2:如果register_shutdown_function已经在其他地方使用过,请务必重复,以确保最终执行,例如:

function my_other_final_function(){ /* ... */ }
register_shutdown_function('my_final_function');

function the_end(){ /* ... */ }
function the_end2(){ register_shutdown_function('the_end'); }
register_shutdown_function('the_end2');

答案 1 :(得分:0)

我不知道如何使用gdb,but this could be usefull

index.php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

我想XDebug可以帮助你进一步

答案 2 :(得分:0)

我试图为不适合我的网站设置display_errors为true。 但幸运的是,我没有去调试,问题是我创建的视图。

谢谢大家

答案 3 :(得分:-1)

错误最有可能出现在Web服务器错误日志中。先看看那里。