Xdebug中文文檔-基礎特性

文檔內容來自xdebug.org/docs,翻譯時xdebug版本爲2.6。我在官方文檔基礎上針對中文排版和教程內容的編排作了一些優化,但願中文文檔看起來更容易理解。php

英文原始文檔地址: https://xdebug.org/docs/
中文文檔github地址: https://github.com/Anoxia/xde...

相關設置參數

xdebug.default_enable

類型:boolean,默認值:1
參數設置爲1時,在錯誤事件中會顯示堆棧跟蹤信息。您可使用xdebug_disable()來禁用顯示你的代碼的棧跟蹤。因爲這是Xdebug的基本功能之一,建議將此設置設置爲1。html

xdebug.force_display_errors

該功能僅適用於 Xdebug> = 2.3

類型:int,默認值:0,
若是該參數被設置爲1,那麼老是會顯示錯誤 ,無論PHP的display_errors 是什麼設置。git

xdebug.force_error_reporting

該功能僅適用於 Xdebug> = 2.3

類型:int,默認值:0,
這個參數的設置是一個位掩碼,就像error_reporting。該位掩碼將與由error_reporting表示的位掩碼進行邏輯「或」運算,從而肯定應顯示哪些錯誤。此設置只能在php.ini中進行,不管應用程序使用ini_set()設置何值,都會強制顯示某些錯誤。github

xdebug.halt_level

該功能僅適用於 Xdebug> = 2.3

類型:int,默認值:0,
這個參數容許您配置掩碼,以肯定顯示哪些通知和(或)警告轉換爲錯誤。您能夠配置由PHP生成的通知和警告,以及您本身生成的通知和警告(經過trigger_error())。數組

例如,要將strlen()(不帶參數)的警告轉換爲錯誤,您應該這樣作:瀏覽器

ini_set('xdebug.halt_level', E_WARNING);
strlen();
echo "Hi!\n";

這將致使錯誤信息的顯示以及腳本的停止。echo "Hi!\n";將不會被執行。cookie

該設置是一個位掩碼,因此要將全部通知和警告轉換爲全部應用程序的錯誤,能夠在php.ini中設置:函數

xdebug.halt_level = E_WARNING | E_NOTICE | E_USER_WARNING | E_USER_NOTICE

位掩碼只支持上面提到的四個級別。佈局

xdebug.max_nesting_level

類型:int,默認值:256
控制無限遞歸保護的保護機制。此設置的值是在腳本停止以前所容許的嵌套函數的最大級別。優化

在Xdebug 2.3以前,默認值是100。

xdebug.max_stack_frames

該功能僅適用於Xdebug> = 2.3

類型:int,默認值:-1。
控制堆棧跟蹤中顯示的堆棧幀的數量,包括PHP錯誤堆棧跟蹤期間的命令行以及HTML跟蹤的瀏覽器。

xdebug.scream

該功能僅適用於 Xdebug> = 2.1

類型:boolean,默認值:0。
若是此設置爲1,則Xdebug將禁用@操做符,以便通知,警告和錯誤再也不隱藏。

相關函數

string xdebug_call_class()[int $ depth = 1])

正常狀況返回調用類,若是堆棧幀不存在返回NULL,堆棧幀沒有類信息返回FALSE

此函數返回定義當前方法的類的名稱,或者 `FALSE若是沒有類與此調用關聯。

Example:

<?php
class Strings
{
    static function fix_string($a)
    {
        echo
            xdebug_call_class().
            "::".
            xdebug_call_function().
            " is called at ".
            xdebug_call_file().
            ":".
            xdebug_call_line();
    }
}

$ret = Strings::fix_string( 'Derick' );
?>

Returns:

Called @ /home/httpd/html/test/xdebug_caller.php:17 from ::{main}

要從較早的堆棧幀中檢索信息,請使用可選的 $depth參數。參數爲1時返回執行xdebug_call_class()方法的調用信息的值:

Example:

<?php
class Strings
{
    static function fix_string( $a )
    {
        echo
            xdebug_call_class( 1 ).
            "::".
            xdebug_call_function( 1 ).
            " is called at ".
            xdebug_call_file( 1 ).
            ":".
            xdebug_call_line( 1 );
    }
}

$ret = Strings::fix_string( 'Derick' );
?>

Returns:

Strings::fix_string is called at /home/httpd/html/test/xdebug_caller:17

參數爲2(默認值)時,返回調用當前方法的方法調用信息:

Example:

<?php
class Strings
{
    static function fix_string( $a )
    {
        echo
            xdebug_call_class( 2 ).
            "::".
            xdebug_call_function( 2 ).
            " is called at ".
            xdebug_call_file( 2 ).
            ":".
            xdebug_call_line( 2 );
    }

    static function fix_strings( array $a )
    {
        foreach ( $a as $element )
        {
            self::fix_string( $a );
        }
    }
}

$ret = Strings::fix_strings( [ 'Derick' ] );
?>

Returns:

Strings::fix_strings is called at /home/httpd/html/test/xdebug_caller:25

參數爲0時,返回相應的xdebug_call_* 調用的信息:

Example:

<?php
class Strings
{
    static function fix_string( $a )
    {
        echo
            xdebug_call_class( 0 ).
            "::".
            xdebug_call_function( 0 ).
            " is called at ".
            xdebug_call_file( 0 ).
            ":".
            xdebug_call_line( 0 );
    }

    static function fix_strings( array $a )
    {
        foreach ( $a as $element )
        {
            self::fix_string( $a );
        }
    }
}

$ret = Strings::fix_strings( [ 'Derick' ] );
?>

Returns:

::xdebug_call_function is called at /home/httpd/html/test/xdebug_caller:13

string xdebug_call_file( [int $depth = 1] )

返回調用文件,若是堆棧幀不存在返回NULL

該函數返回從當前函數/方法執行的文件名。

要從較早的堆棧幀中檢索信息,請使用可選的 $depth參數。

有關示例和更普遍的信息,請參見xdebug_call_class()

string xdebug_call_function( [int $depth = 1] )

若是堆棧幀不存在返回NULL,若是堆棧幀沒有函數/方法信息返回FALSE

該函數返回當前函數/方法的名稱。

要從較早的堆棧幀中檢索信息,請使用可選的 $depth參數。

有關示例和更普遍的信息,請參見xdebug_call_class()

int xdebug_call_line( [int $depth = 1] )

返回改函數調用所在行號,若是堆棧幀不存在返回NULL

這個函數返回從當前函數/方法被調用的行號。

要從較早的堆棧幀中檢索信息,請使用可選的 $depth參數。

有關示例和更普遍的信息,請參見xdebug_call_class()

void xdebug_disable()

禁用堆棧跟蹤

禁止在錯誤狀況下顯示堆棧跟蹤。

void xdebug_enable()

啓用堆棧跟蹤

在錯誤狀況下啓用顯示堆棧跟蹤。

string xdebug_get_collected_errors( [int clean] )

該功能僅適用於 Xdebug> = 2.1

返回全部收集的錯誤消息。

此函數返回收集緩衝區中的全部錯誤,其中包含使用xdebug_start_error_collection()開始錯誤收集時存儲在那裏的全部錯誤 。

默認狀況下,這個函數不會清除錯誤收集緩衝區。當該函數的參數爲true時緩衝區內容將被清除。

此函數返回一個字符串,其中包含格式化爲「Xdebug table」的全部收集的錯誤。

array xdebug_get_headers()

該功能僅適用於 Xdebug> = 2.1

經過調用PHP的header()函數返回全部的頭文件。

返回全部使用PHP的header()函數設置的頭文件,或者PHP內部設置的任何其餘頭文件(好比經過setcookie()),做爲返回數組內容。

Example:

<?php
header( "X-Test", "Testing" );
setcookie( "TestCookie", "test-value" );
var_dump( xdebug_get_headers() );
?>

Returns:

array(2) {
  [0]=>
  string(6) "X-Test"
  [1]=>
  string(33) "Set-Cookie: TestCookie=test-value"
}

bool xdebug_is_enabled()

返回是否啓用堆棧跟蹤

返回是否在出現錯誤時顯示堆棧軌跡。

int xdebug_memory_usage()

返回當前的內存使用狀況

返回腳本使用的當前內存量。在PHP 5.2.1以前,這隻有在使用--enable-memory-limit進行編譯時纔有效。從5.2.1版本開始,這個函數老是可用的。

int xdebug_peak_memory_usage()

返回峯值內存使用狀況

返回腳本直到如今使用的最大內存量。在PHP 5.2.1以前,這隻有在使用--enable-memory-limit進行編譯時纔有效。從5.2.1版本開始,這個函數老是可用的。

void xdebug_start_error_collection()

開始記錄全部的通知,警告和錯誤,並阻止他們的顯示。該功能僅適用於Xdebug> = 2.1

當執行這個函數時,Xdebug將致使PHP不顯示任何通知,警告或錯誤。相反,它們根據Xdebug的正常錯誤格式化規則(即帶有紅色感嘆號的錯誤表)格式化,而後存儲在緩衝區中。這將繼續,直到你調用xdebug_stop_error_collection()

這個緩衝區的內容能夠經過調用xdebug_get_collected_errors()來獲取 ,而後顯示。若是你想防止Xdebug強大的錯誤報告功能破壞你的佈局,這是很是有用的。

void xdebug_stop_error_collection()

中止記錄由xdebug_start_error_collection()啓動的全部通知,警告和錯誤。該功能僅適用於Xdebug> = 2.1

執行此函數時,由xdebug_start_error_collection()啓動的錯誤收集將 被停止。存儲在收集緩衝區中的錯誤不會被刪除,仍然能夠經過xdebug_get_collected_errors()獲取 。

float xdebug_time_index()

返回當前時間索引

從腳本開始以秒爲單位返回當前時間索引。

Example:

<?php
echo xdebug_time_index(), "\n";
for ($i = 0; $i < 250000; $i++)
{
    // do nothing
}
echo xdebug_time_index(), "\n";
?>

Returns:

0.00038003921508789 
0.76580691337585
相關文章
相關標籤/搜索