2011-08-02 77 views
13

管理员在我们的共享PHP 5.3.0服务器中安装了Xdebug 2.1.1以使用其调试器。现在,我几乎不能读uncatched异常的堆栈跟踪,因为它们是由Xdebug的恼人的颜色,与网站的CSS交互格式错误:通过Xdebug禁用HTML堆栈跟踪

Unreadable stack trace

由于PHP运行作为Apache模块时,我试着在.htaccess文件中禁用此功能,但我不能让他走:

php_flag xdebug.default_enable Off 
php_flag xdebug.overload_var_dump Off 
php_flag xdebug.show_exception_trace Off 
php_value xdebug.trace_format 1 

phpinfo()显示了我在本地值列的变化,但我仍然可以看到那些可怕的橙色表。我需要改变什么指令?

+0

http://xdebug.org/docs/stack_trace – hakre

回答

11

检查xdebug_disable()Docs

禁用堆栈跟踪

禁用显示在错误条件堆栈跟踪。

另请参阅xdebug.default_enableDocs。在初始化脚本

+0

'xdebug.default_enable'没有明显的效果,但在我的代码上调用'xdebug_disable()'可以正常工作。我会看看如何将它打包在我的网站设置中。 –

+0

尝试将'xdebug.default_enable'放入系统的php.ini中,也许可行。另外可能在.htaccess配置中使用'0'而不是'off'也可能有帮助,但这只是一个假设,我没有测试过。 – hakre

+0

好吧......我已经做了进一步的测试,指令*是*'xdebug.default_enable',但似乎有一个地方的错误:在共享开发服务器中它被忽略,在我的本地安装中完全被尊重。 –

9

您还需要确保在PHP中有html_errors=0。 此外,橙色是不可怕;-)

+0

我不知道我得到它。我已经使用HTML错误,以及'error_prepend_string'和'error_append_string',这样我就可以显示换行符。如果我禁用它,Xdebug不会绘制HTML,但也会导致错误无法读取,因为所有内容都在一行中。我不想在* View Source *窗口中搜索错误消息... –

+0

如果您正在从PHP输出json以用于Javascript,angular以及所有这些,非常有用。 – Pere

+1

如果@derick回答你最好听。他写了XDebug。 –

6

添加以下代码:

if (function_exists('xdebug_disable')) { 
      xdebug_disable(); 
     } 
+1

请注意[remote_autostart](http://xdebug.org/docs/all_settings#remote_autostart)和[remote_enable](http:// xdebug。 org/docs/all_settings#remote_enable)控制调试器。它们与堆栈轨迹无关。 –

+0

像Alvaro所说的,这里的选项#2与显示HTML堆栈跟踪无关。 – rockerston

+0

根据建议更新。 – Sumoanand