2011-08-02 137 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