我在Drupal网站上获得了一个WSOD(白屏死机),可以为单个用户提供单页。我了解到这是由于分段错误。我无法发现错误在哪里?如何使用gdb ???
调试我的PHP代码答案 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服务器错误日志中。先看看那里。