国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Xdebug中文文檔-堆棧跟蹤

wzyplus / 1569人閱讀

摘要:英文原始文檔地址中文文檔地址當(dāng)被激活時,只要決定顯示通知,警告,錯誤等,就會顯示堆棧跟蹤。堆棧跟蹤中的變量默認(rèn)情況下,將在它生成的堆棧跟蹤中顯示可變信息。

文檔內(nèi)容來自xdebug.org/docs,翻譯時xdebug版本為2.6。我在官方文檔基礎(chǔ)上針對中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來更容易理解。

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

當(dāng)Xdebug被激活時,只要PHP決定顯示通知,警告,錯誤等,就會顯示堆棧跟蹤。堆棧跟蹤顯示的信息以及顯示方式可以根據(jù)您的需要進(jìn)行配置。

Xdebug在錯誤情況下顯示的堆棧跟蹤信息量相當(dāng)保守(如果display.errors 在php.ini中設(shè)置為On)。這是因?yàn)榇罅康男畔p慢腳本的執(zhí)行速度和瀏覽器中堆棧跟蹤本身的渲染速度。但是,可以使堆棧軌跡以不同的設(shè)置顯示更詳細(xì)的信息。

堆棧跟蹤中的變量

默認(rèn)情況下,Xdebug將在它生成的堆棧跟蹤中顯示可變信息。在收集或顯示時,可變信息可能需要相當(dāng)多的資源。但是,在很多情況下,顯示變量信息是很有用的,這就是Xdebug具有設(shè)置 xdebug.collect_params的原因。下面的腳本與下面的示例中顯示的輸出結(jié)果與此設(shè)置的不同值相結(jié)合。

Example:

bar = 100;
$a = array(
    42 => false, "foo" => 912124,
    $c, new stdClass, fopen( "/etc/passwd", "r" )
);
foo( $a );
?>

Result:

xdebug.collect_params設(shè)置的 不同值給出了不同的輸出,您可以在下面看到:

xdebug.collect_params:默認(rèn)值

xdebug.collect_params:1

xdebug.collect_params:2

xdebug.collect_params:3

xdebug.collect_params:4

附加信息

除了顯示傳遞給每個函數(shù)的變量的值之外,Xdebug還可以使用xdebug.dump_globals和xdebug.dump.*設(shè)置選擇性地顯示有關(guān)所選超級全局變量的信息。設(shè)置xdebug.dump_once 和xdebug.dump_undefined會稍微修改何時以及從可用的超級全局列表中顯示哪些信息。通過xdebug.show_local_vars設(shè)置,您可以指示Xdebug顯示用戶定義函數(shù)的最頂層堆棧中的所有可用變量。下面的例子顯示了這個(腳本是從上面的例子中使用的)。

默認(rèn)

ini_set("xdebug.collect_vars", "on");
ini_set("xdebug.collect_params", "4");
ini_set("xdebug.dump_globals", "on");
ini_set("xdebug.dump.SERVER", "REQUEST_URI");
ini_set("xdebug.show_local_vars", "on");

dump_superglobals=1

ini_set("xdebug.collect_vars", "on");
ini_set("xdebug.collect_params", "4");
ini_set("xdebug.dump_globals", "on");
ini_set("xdebug.dump.SERVER", "REQUEST_URI");

ini_set("xdebug.collect_vars", "on");
ini_set("xdebug.collect_params", "4");
ini_set("xdebug.dump_globals", "on");
ini_set("xdebug.dump.SERVER", "REQUEST_URI");
ini_set("xdebug.show_local_vars", "on");

show_local_vars=1

ini_set("xdebug.collect_vars", "on");
ini_set("xdebug.collect_params", "4");
ini_set("xdebug.dump_globals", "on");
ini_set("xdebug.dump.SERVER", "REQUEST_URI");
ini_set("xdebug.show_local_vars", "on");

過濾

Xdebug 2.6引入了堆棧跟蹤的過濾功能。過濾器包括通過白名單,或通過黑名單,路徑或類名前綴排除。您可以使用過濾器來防止供應(yīng)商目錄中的任何內(nèi)容出現(xiàn)在堆棧跟蹤中,或僅包含來自特定名稱空間的類。

要設(shè)置一個過濾器,只顯示沒有類名的函數(shù)和方法,或者以“Xdebug”為前綴,可以調(diào)用xdebug_set_filter()

Example:

xdebug_set_filter(
    XDEBUG_FILTER_TRACING,
    XDEBUG_NAMESPACE_WHITELIST,
    [ "", "Xdebug" ]
);

使用這個過濾器設(shè)置,您將只能看到函數(shù)(沒有類)和所有以“Xdebug”開頭的類的方法調(diào)用。這包括內(nèi)置的PHP函數(shù)(如strlen())和調(diào)用 XdebugTest::bar()。過濾器不強(qiáng)制執(zhí)行“Xdebug”是一個名稱空間的名稱,并且只從完全限定的類名稱開始進(jìn)行嚴(yán)格的字符比較。添加一個前綴以確保只包含Xdebug名稱空間中的類。

有關(guān)xdebug_set_filter() 參數(shù)的完整文檔將在其自己的文檔頁面上進(jìn)行介紹。

相關(guān)設(shè)置 xdebug.cli_color
該功能僅適用于Xdebug> = 2.2

類型:整數(shù),默認(rèn)值:0

設(shè)置為1時,在CLI模式下以及輸出為tty時,Xdebug將著色var_dumps和堆棧跟蹤輸出。在Windows上, 需要安裝ANSICON工具。

設(shè)置為2時,那么無論是否連接到tty或是否安裝ANSICON,Xdebug將始終為var_dumps和堆棧跟蹤著色。在這種情況下,您最終可能會看到轉(zhuǎn)義碼。

有關(guān)更多信息,請參閱這篇文章。

xdebug.collect_includes

類型:布爾值,默認(rèn)值:1

該設(shè)置控制著Xdebug是否應(yīng)該將include()include_once()require()require_once()中使用的文件名寫入堆棧跟蹤文件。

xdebug.collect_params

類型:整數(shù),默認(rèn)值:0

該設(shè)置控制Xdebug是否應(yīng)該在功能跟蹤或堆棧跟蹤中記錄一個函數(shù)調(diào)用時傳遞給函數(shù)的參數(shù)。

該設(shè)置默認(rèn)為0,因?yàn)閷τ诜浅4蟮哪_本,它可能會使用大量的內(nèi)存,因此默認(rèn)不開啟該功能。您可以打開這個設(shè)置,大部分情況下這個設(shè)置是安全的,如果您的腳本有非常多的函數(shù)調(diào)用/巨大數(shù)據(jù)結(jié)構(gòu)時,您可能會遇到一些為題。從Xdebug2開始不再有內(nèi)存使用的問題,因?yàn)樗粫⑦@些信息存儲在內(nèi)存中。而是寫入磁盤。這意味著您需要看看磁盤使用情況。

該設(shè)置可以有四個不同的值。對于每個值,顯示不同的信息量。下面您會看到每個值提供的信息。有關(guān)一些屏幕截圖,另請參閱Stack Traces功能的介紹 。

顯示的參數(shù)信息
0 不顯示
1 元素的類型和數(shù)量(f.e. string(6), array(8))
2 元素的類型和數(shù)量,以及提供完整信息的工具提示( 在CLI版本的PHP中,它不會有工具提示,也不會在輸出文件中。)
3 完整的變量內(nèi)容(限制取決于 xdebug.var_display_max_children, xdebug.var_display_max_data 和 xdebug.var_display_max_depth)
4 全變量內(nèi)容和變量名稱。
5 PHP序列化的變量內(nèi)容,沒有名字。(Xdebug 2.3中的新功能)
xdebug.collect_vars

類型:布爾值,默認(rèn)值:0

這個設(shè)置告訴Xdebug收集關(guān)于在一定范圍內(nèi)使用哪些變量的信息。Xdebug必須對PHP的操作碼數(shù)組進(jìn)行逆向工程,因此這種分析可能會非常緩慢。這個設(shè)置不會記錄不同的變量有哪些值,要是使用該功能請使用xdebug.collect_params。請在只有當(dāng)您想使用xdebug_get_declared_vars()時才需要啟用此設(shè)置 。

xdebug.dump.*

類型:字符串,默認(rèn)值:空

*可以是任何COOKIEFILESGETPOSTREQUESTSERVER, SESSION。這七種設(shè)置控制發(fā)生錯誤時超級全局變量數(shù)據(jù)顯示。

該選項(xiàng)的設(shè)置由一個逗號分隔的變量列表組成,這個變量從這個超級全局到轉(zhuǎn)儲,或者*所有這些變量。確保您不要在此設(shè)置中添加空格。

例如,在發(fā)生錯誤時轉(zhuǎn)儲REMOTE_ADDRREQUEST_METHOD以及所有GET參數(shù),請?zhí)砑右韵略O(shè)置:

xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
xdebug.dump.GET = *
xdebug.dump_globals

類型:布爾值,默認(rèn)值:1

當(dāng)此設(shè)置設(shè)置為時true,Xdebug將通過xdebug.dump.*配置的超級全局值添加到屏幕上的堆棧跟蹤和錯誤日志(如果啟用)。

xdebug.dump_once

類型:布爾值,默認(rèn)值:1

控制是否應(yīng)在所有錯誤情況(設(shè)置為0)或僅在第一個(設(shè)置為1)時拋出超全局值的值。

xdebug.dump_undefined

類型:布爾值,默認(rèn)值:0

如果要從超級全局變量中取出未定義的值,應(yīng)將此設(shè)置設(shè)置為1,否則將其設(shè)置為0。

xdebug.file_link_format
該功能僅適用于Xdebug> = 2.1

類型:字符串,默認(rèn)值:空

此設(shè)置確定使用文件名的堆棧跟蹤顯示中所建立的鏈接的格式。這允許IDE建立一個鏈接協(xié)議,通過點(diǎn)擊Xdebug在堆棧跟蹤中顯示的文件名,可以直接進(jìn)入一個行和文件。示例格式可能如下所示:

myide://%F @%L

可能的格式說明符是:

含義
%F 文件名
%L 行號

對于各種IDE / OSses,列出了如何完成這項(xiàng)工作的一些說明:

Linux上的Firefox

打開about:config

添加一個新的布爾設(shè)置network.protocol-handler.expose.xdebug并將其設(shè)置為false

將以下內(nèi)容添加到shell腳本中~/bin/ff-xdebug.sh

#! /bin/sh

f=`echo $1 | cut -d @ -f 1 | sed "s/xdebug:////"`
l=`echo $1 | cut -d @ -f 2`

添加到(取決于你是否有komodo,gvim或netbeans):

komodo $f -l $l

gvim --remote-tab +$l $f

netbeans "$f:$l"

使腳本可執(zhí)行 chmod +x ~/bin/ff-xdebug.sh

將xdebug.file_link_format設(shè)置為xdebug://%f@%l

Windows和netbeans

創(chuàng)建文件netbeans.bat

并將其保存在路徑中(C:Windows將工作):

@echo off
setlocal enableextensions enabledelayedexpansion
set NETBEANS=%1
set FILE=%~2
%NETBEANS% --nosplash --console suppress --open "%FILE:~19%"
nircmd win activate process netbeans.exe

注意:如果沒有,刪除最后一行nircmd

將以下代碼保存為netbeans_protocol.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT
etbeans]
"URL Protocol"=""
@="URL:Netbeans Protocol"

[HKEY_CLASSES_ROOT
etbeansDefaultIcon]
@=""C:Program FilesNetBeans 7.1.1in
etbeans.exe,1""

[HKEY_CLASSES_ROOT
etbeansshell]

[HKEY_CLASSES_ROOT
etbeansshellopen]

[HKEY_CLASSES_ROOT
etbeansshellopencommand]
@=""C:Windows
etbeans.bat" "C:Program FilesNetBeans 7.1.1in
etbeans.exe" "%1""

注意:確保將路徑更改為Netbeans(兩次),以及netbeans.bat批處理文件(如果將其保存在其他位置)C:Windows

雙擊該netbeans_protocol.reg文件將其導(dǎo)入到注冊表中。

將xdebug.file_link_format設(shè)置為xdebug.file_link_format = "netbeans://open/?f=%f:%l"

xdebug.filename_format
該功能僅適用于Xdebug> = 2.6

類型:字符串,默認(rèn)值:...%s%n

此設(shè)置確定Xdebug在HTML堆棧跟蹤(默認(rèn):)中...%s%n通過重載的xdebug_var_dump()(默認(rèn)值 :)呈現(xiàn)文件名的格式和位置信息%f

此表中列出了可能的格式說明符。示例輸出根據(jù)完整路徑呈現(xiàn) /var/www/vendor/mail/transport/mta.php

含義 示例輸出
%a Ancester:兩個目錄元素和文件名 mail/transport/mta.php
%f 完整路徑 /var/www/vendor/mail/transport/mta.php
%n 名稱:只有文件名 mta.php
%p 父項(xiàng):一個目錄元素和文件名 transport/mta.php
%s 目錄分隔符 在Linux,OSX和其他類Unix系統(tǒng)/
xdebug.manual_url

類型:字符串,默認(rèn)值:http : //www.php.net

這是從函數(shù)跟蹤和錯誤消息到消息中函數(shù)的手冊頁的鏈接的基礎(chǔ)URL。建議將此設(shè)置設(shè)置為使用最近的鏡像。、

xdebug.show_error_trace
該功能僅適用于Xdebug> = 2.4

類型:整數(shù),默認(rèn)值:0

當(dāng)這個設(shè)置被設(shè)置為1時,只要發(fā)生錯誤,Xdebug將顯示一個堆棧跟蹤 - 即使這個錯誤實(shí)際上被捕獲了。

xdebug.show_exception_trace

類型:整數(shù),默認(rèn)值:0

當(dāng)這個設(shè)置被設(shè)置為1時,無論何時發(fā)生異常或錯誤,Xdebug都會顯示一個堆棧跟蹤 - 即使這個異常或錯誤實(shí)際上被捕獲了。

異常 "exceptions" 是在PHP 7中引入的。

xdebug.show_local_vars

類型:整數(shù),默認(rèn)值:0

當(dāng)這個設(shè)置被設(shè)置為!= 0時,Xdebug在錯誤情況下生成的堆棧轉(zhuǎn)儲也將顯示最頂級作用域中的所有變量。注意,這可能會產(chǎn)生大量的信息,因此默認(rèn)關(guān)閉。

xdebug.show_mem_delta

類型:整數(shù),默認(rèn)值:0

當(dāng)這個設(shè)置被設(shè)置為!= 0時,Xdebug的可讀生成的跟蹤文件將顯示函數(shù)調(diào)用之間的內(nèi)存使用情況的差異。如果Xdebug被配置為生成計算機(jī)可讀的跟蹤文件,那么他們將始終顯示此信息。

xdebug.var_display_max_children

類型:整數(shù),默認(rèn)值:128

當(dāng)使用xdebug_var_dump(), xdebug.show_local_vars或通過Function Traces顯示變量時,控制數(shù)組的子項(xiàng)和對象的屬性的數(shù)量。

要禁用任何限制,請使用-1作為值。

此設(shè)置對通過遠(yuǎn)程調(diào)試功能發(fā)送給客戶端的子項(xiàng)數(shù)量沒有任何影響。

xdebug.var_display_max_data

類型:整數(shù),默認(rèn)值:512

控制使用xdebug_var_dump(),xdebug.show_local_vars或通過Function Traces顯示變量時顯示的最大字符串長度。

要禁用任何限制,請使用-1作為值。

此設(shè)置對通過遠(yuǎn)程調(diào)試功能發(fā)送給客戶端的子項(xiàng)數(shù)量沒有任何影響。

xdebug.var_display_max_depth

類型:整數(shù),默認(rèn)值:3

通過 xdebug_var_dump(), xdebug.show_local_vars 或Function Traces顯示變量時,控制數(shù)組元素和對象屬性的嵌套級別。

您可以選擇的最大值是1023.您也可以使用-1作為值來選擇此最大值。

此設(shè)置對通過遠(yuǎn)程調(diào)試功能發(fā)送給客戶端的子項(xiàng)數(shù)量沒有任何影響。

相關(guān)功能 array xdebug_get_declared_vars()

返回一個數(shù)組,其中每個元素是在當(dāng)前作用域中定義的變量名稱。需要啟用設(shè)置xdebug.collect_vars。

Example


Result

array
  0 => string "a" (length=1)
  1 => string "b" (length=1)
  2 => string "item" (length=4)

在5.1之前的PHP版本中,變量名稱“a”不在返回的數(shù)組中,因?yàn)樗丛谡{(diào)用函數(shù)xdebug_get_declared_vars()的作用域中使用。

array xdebug_get_function_stack()

返回關(guān)于堆棧的信息

Example

fix_string($item);
            }
        }
    }

    $s = new strings();
    $ret = $s->fix_strings(array("Derick"));

Result

array
  0 => 
    array
      "function" => string "{main}" (length=6)
      "file" => string "/var/www/xdebug_get_function_stack.php" (length=63)
      "line" => int 0
      "params" => 
        array
          empty
  1 => 
    array
      "function" => string "fix_strings" (length=11)
      "class" => string "strings" (length=7)
      "file" => string "/var/www/xdebug_get_function_stack.php" (length=63)
      "line" => int 18
      "params" => 
        array
          "b" => string "array (0 => "Derick")" (length=21)
  2 => 
    array
      "function" => string "fix_string" (length=10)
      "class" => string "strings" (length=7)
      "file" => string "/var/www/xdebug_get_function_stack.php" (length=63)
      "line" => int 12
      "params" => 
        array
          "a" => string ""Derick"" (length=8)
array xdebug_get_monitored_functions()
該功能僅適用于Xdebug> = 2.4

返回有關(guān)監(jiān)視功能的信息,其中包含有關(guān)在腳本中執(zhí)行受監(jiān)視函數(shù)的位置的信息。

Example


Result

/tmp/monitor-example.php:10:
array(2) {
  [0] =>
  array(3) {
    "function" =>
    string(6) "strrev"
    "filename" =>
    string(24) "/tmp/monitor-example.php"
    "lineno" =>
    int(6)
  }
  [1] =>
  array(3) {
    "function" =>
    string(6) "strrev"
    "filename" =>
    string(24) "/tmp/monitor-example.php"
    "lineno" =>
    int(8)
  }
}
integer xdebug_get_stack_depth()

返回當(dāng)前的堆棧深度級別。腳本的主體是0級,每個函數(shù)調(diào)用都會將堆棧深度級別加1。

none xdebug_print_function_stack( [ string message [, int options ] ] )
該功能僅適用于Xdebug> = 2.1

以類似于Xdebug在錯誤情況下顯示的方式顯示當(dāng)前函數(shù)堆棧。“message”參數(shù)允許您用自己的頭替換標(biāo)頭中的消息。

Example


Result

位掩碼“options”允許您配置一些額外的選項(xiàng)。目前支持以下選項(xiàng):

XDEBUG_STACK_NO_DESC

如果設(shè)置了此選項(xiàng),則打印的堆棧跟蹤將不會有標(biāo)題。如果您想從自己的錯誤處理程序打印堆棧跟蹤,這很有用,否則打印的位置就是xdebug_print_function_stack()處信息。(在Xdebug 2.3中引入)。

void xdebug_start_function_monitor( array $list_of_functions_to_monitor )
該功能僅適用于Xdebug> = 2.4

開始功能監(jiān)控。該函數(shù)啟動對列表中給出的函數(shù)的監(jiān)視作為該函數(shù)的參數(shù)。通過函數(shù)監(jiān)視,您可以查找代碼中的哪個位置作為參數(shù)提供的函數(shù)。

Example


您還可以將類方法和靜態(tài)方法添加到定義要監(jiān)視哪些函數(shù)的數(shù)組中。例如,要捕獲對DramModel::canSee的靜態(tài)調(diào)用和對Whisky-> drink的動態(tài)調(diào)用,可以使用以下命令啟動監(jiān)視器:

Example

drink"] );

定義的函數(shù)區(qū)分大小寫,并且不會捕獲對靜態(tài)方法的動態(tài)調(diào)用。

void xdebug_stop_function_monitor()
該功能僅適用于Xdebug> = 2.4

停止監(jiān)視功能。為了獲得被監(jiān)視函數(shù)的列表,你需要使用xdebug_get_monitored_functions() 函數(shù)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/28264.html

相關(guān)文章

  • Xdebug中文文檔-基礎(chǔ)特性

    摘要:我在官方文檔基礎(chǔ)上針對中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來更容易理解。控制堆棧跟蹤中顯示的堆棧幀的數(shù)量,包括錯誤堆棧跟蹤期間的命令行以及跟蹤的瀏覽器。 文檔內(nèi)容來自xdebug.org/docs,翻譯時xdebug版本為2.6。我在官方文檔基礎(chǔ)上針對中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來更容易理解。 英文原始文檔地址:https://xdebug....

    劉東 評論0 收藏0
  • Xdebug中文文檔-目錄

    摘要:我在官方文檔基礎(chǔ)上針對中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來更容易理解。英文原始文檔地址中文文檔地址目錄安裝本節(jié)介紹各個操作系統(tǒng)下如何安裝。堆棧跟蹤本節(jié)介紹當(dāng)被激活時,只要決定顯示通知,警告,錯誤等,就會顯示堆棧跟蹤。 文檔內(nèi)容來自xdebug.org/docs,翻譯時xdebug版本為2.6。我在官方文檔基礎(chǔ)上針對中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看...

    or0fun 評論0 收藏0
  • Xdebug中文文檔-變量打印特性

    摘要:我在官方文檔基礎(chǔ)上針對中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來更容易理解。英文原始文檔地址中文文檔地址替換了的函數(shù)來顯示變量。通過,或函數(shù)軌跡顯示變量時,控制數(shù)組元素和對象屬性的嵌套級別。 文檔內(nèi)容來自xdebug.org/docs,翻譯時xdebug版本為2.6。我在官方文檔基礎(chǔ)上針對中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來更容易理解。 英文原始文檔地...

    Scott 評論0 收藏0
  • XDEBUG 從入門到精通

    摘要:默認(rèn)關(guān)閉如果該設(shè)置為,那么將禁用關(guān)閉操作符,以便不再隱藏通知警告和錯誤。將寫入垃圾收集統(tǒng)計信息輸出的目錄,確保將運(yùn)行的用戶具有對該目錄的寫入權(quán)限。此設(shè)置確定用于將垃圾回收統(tǒng)計信息轉(zhuǎn)儲到的文件的名稱。 showImg(https://segmentfault.com/img/bVbgEC5?w=480&h=274); 前言 Xdebug是PHP的擴(kuò)展,用于協(xié)助調(diào)試和開發(fā)。 它包含一個用...

    leejan97 評論0 收藏0
  • PHP性能測試?yán)?Xdebug和phpstorm

    摘要:是一個開放源代碼的程序調(diào)試器即一個工具,可以用來跟蹤,調(diào)試和分析程序的運(yùn)行狀況。以下為安裝示例,安裝請參考集成開發(fā)和斷點(diǎn)調(diào)試環(huán)境的配置。指令的配置路徑必須是絕對路徑。 Xdebug是一個開放源代碼的PHP程序調(diào)試器(即一個Debug工具),可以用來跟蹤,調(diào)試和分析PHP程序的運(yùn)行狀況。以下為Windows+Phpstorm+Xampp+Xdebug安裝示例,MAC安裝請參考集成開發(fā)和斷...

    MoAir 評論0 收藏0

發(fā)表評論

0條評論

wzyplus

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<