2010-08-14 102 views

回答

11

您必須替換未捕獲的異常處理程序。例如:如果你使用xdebug可以specify the length and number of variables它吐出

 
#0 /home/glopes/a.php(21): a('loooooooooooooooooooooooooooooooooong argument') 
#1 /home/glopes/a.php(24): b() 
+1

請記住,$ frame ['file']並不總是被定義的,因此您需要先檢查它。在這種情況下,PHP的堆棧翻轉器返回'[內部函數]'。此外,你可能想看看是否定義了$ frame ['class'],並且在函數是成員函數的情況下也轉儲它。 – DaveBurns 2012-09-19 18:37:44

5

function exception_handler($exception) { 
    $i = 0; 
    foreach ($exception->getTrace() as $frame) { 
     echo sprintf("#%d %s(%d): %s(%s)\n", 
      $i++, $frame["file"], $frame["line"], 
      $frame["function"], 
      implode(", ", array_map(
       function ($e) { return var_export($e, true); }, $frame["args"]))); 
    } 
} 

set_exception_handler('exception_handler'); 

現在,你得到的東西等。

+0

+1對於建議xdebug – NullUserException 2010-08-14 02:23:31

+0

好主意,但它不適用於我們通常禁用的產品。 – 2017-03-30 11:28:15