<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 查看PHP錯誤信息 1、修改php.ini配置 ~~~ php.ini中display_errors / display_startup_errors 設置為On php.ini中error_reporting 設置為E_ALL PHP代碼中設置error_reporting(E_ALL) ~~~ 2、PHP中打開報錯 ~~~ error_reporting(E_ALL); ini_set ('display_errors', 'On'); ~~~ 有些情況下php.ini配置中關閉了錯誤顯示,需要修改php.ini打開錯誤信息,或者錯誤信息被導出到了日志文件,這種情況可以直接tailf php_error.log來看錯誤信息。 ## 多個版本的php或php-cli與php-fpm加載不同的配置 ~~~ which php #得到反饋 /usr/bin/php,查看PHP安裝在哪 ~~~ ~~~ php -i |grep php.ini #得到加載那個php.ini,如下 Configuration File (php.ini) Path => /usr/local/etc/php/5.6 Loaded Configuration File => /usr/local/etc/php/5.6/php.ini ~~~ ## 打印單步調試 ### 1、PHP的getTrace fiel:發生異常的PHP程序文件名稱; line:發生異常的代碼所在的行號; function:發生異常的函數或方法; class:發生異常的函數或方法所在的類; type:調用發生異常的函數或方法的類型(“::”調用靜態類成員,“->”調用實例化對象); args:發生異常的函數或方法所接受的參數。 ~~~ <?php $path = "www.phpdo.net"; try { file_open($path); } catch(Exception $e) { echo "異常信息".$e->getMessage()."\n"; echo "異常代碼".$e->getCode()."\n"; echo "異常文件".$e->getFile()."\n"; echo "異常代碼所在行".$e->getLine()."\n"; echo "傳遞路線:"; print_r($e->getTrace()); //以數組的形式返回跟蹤異常的每一部的傳遞路線 echo $e->getTraceAsString();//返回格式化成字符串的getTrace函數信息 } function file_open($path) { if(!file_exists($path)) { throw new exception("www.phpdo.net這個文件不存在",1); } if(!fopen($path,"r")) { throw new exception("www.phpdo.net這個文件無法打開",2); } } ?> 結果: 異常信息www.phpdo.net 這個文件不存在 異常代碼1 異常文件E:\xampp\htdocs\php\Test\10.2.6.php 異常代碼所在行22 傳遞路線: Array ( [0] => Array ( [file] => E:\xampp\htdocs\php\Test\10.2.6.php [line] => 5 [function] => file_open [args] => Array ( [0] => www.phpdo.net ) ) ) #0 E:\xampp\htdocs\php\Test\10.2.6.php(5): file_open(‘www.phpdo.net’) #1 {main} ~~~ ### 2、PHP debug_backtrace() <table class="dataintable " style="margin:10px 0px 0px; padding:0px; border:1px solid rgb(170,170,170); border-collapse:collapse; width:709px; color:rgb(0,0,0); font-family:Verdana,Arial,宋體; font-size:12px; background-color:rgb(249,249,249)"><tbody style="margin:0px; padding:0px; border:0px"><tr style="margin:0px; padding:0px; border:0px"><th style="margin:0px; padding:5px 15px 5px 6px; border:1px solid rgb(170,170,170); vertical-align:baseline; background-color:rgb(213,213,213)">名稱</th><th style="margin:0px; padding:5px 15px 5px 6px; border:1px solid rgb(170,170,170); vertical-align:baseline; background-color:rgb(213,213,213)">類型</th><th style="margin:0px; padding:5px 15px 5px 6px; border:1px solid rgb(170,170,170); vertical-align:baseline; background-color:rgb(213,213,213)">描述</th></tr><tr style="margin:0px; padding:0px; border:0px"><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">function</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">字符串</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">當前的函數名。</td></tr><tr style="margin:0px; padding:0px; border:0px"><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">line</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">整數</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">當前的行號。</td></tr><tr style="margin:0px; padding:0px; border:0px"><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">file</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">字符串</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">當前的文件名。</td></tr><tr style="margin:0px; padding:0px; border:0px"><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">class</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">字符串</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">當前的類名</td></tr><tr style="margin:0px; padding:0px; border:0px"><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">object</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">對象</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">當前對象。</td></tr><tr style="margin:0px; padding:0px; border:0px"><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">type</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">字符串</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">當前的調用類型,可能的調用:<ul class="listintable" style="margin:20px; padding:0px; border:0px; list-style-type:none"><li style="margin:0px; padding:0px; border:0px; list-style-type:disc">返回: "-&gt;"? - 方法調用</li><li style="margin:0px; padding:0px; border:0px; list-style-type:disc">返回: "::"? - 靜態方法調用</li><li style="margin:0px; padding:0px; border:0px; list-style-type:disc">返回 nothing - 函數調用</li></ul></td></tr><tr style="margin:0px; padding:0px; border:0px"><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">args</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">數組</td><td style="margin:0px; padding:6px 15px 6px 6px; border:1px solid rgb(170,170,170); vertical-align:text-top; background-color:rgb(239,239,239)">如果在函數中,列出函數參數。如果在被引用的文件中,列出被引用的文件名。</td></tr></tbody></table> ~~~ <?php function one($str1, $str2) { two("Glenn", "Quagmire"); } function two($str1, $str2) { three("Cleveland", "Brown"); } function three($str1, $str2) { print_r(debug_backtrace()); } one("Peter", "Griffin"); ?> ~~~ ### 3、其他(var_dump,die(),exit()等) ## PHP進程跟蹤查看 ### 什么是strace? strace是一個非常簡單的工具,它可以跟蹤系統調用的執行。最簡單的方式,它可以從頭到尾跟蹤binary的執行,然后以一行文本輸出系統調用的名字,參數和返回值。 其實它可以做的更多: 可以對特定的系統調用或者幾組系統調用進行過濾 可以通過統計特定系統調用的調用次數、耗費的時間、成功和失敗的次數來配置(profile)系統調用的使用I 跟蹤發送給進程的信號量 可以通過pid附著(attach)到任何運行的進程 如果你使用的是其它Unix系統,它類似于"truss"。其它更復雜的是Sun的Dtrace. 調用:? ~~~ strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] …? [ -ofile ] [ -ppid ] … [ -sstrsize ] [ -uusername ] [ command [ arg … ] ] strace -c [ -eexpr ] … [ -Ooverhead ] [ -Ssortby ] [ command [ arg … ] ]? ~~~ 功能:? 跟蹤程式執行時的系統調用和所接收的信號.通常的用法是strace執行一直到commande結束.? 使用strace php test.php,或者strace -p 進程ID。strace就可以幫助你透過現象看本質,掌握程序執行的過程。 ~~~ 如: strace -p PID分析php-fpm進程 at("/data/tdocs/webroot/go/./Widget/boutique.inc.php", 0x7fffc74cb320) = -1 ENOENT (No such file or directory) lstat("/data/tdocs/webroot/go/./Widget/openapi.inc.php", 0x7fffc74cb320) = -1 ENOENT (No such file or directory) lstat("/data/tdocs/webroot/go/./Widget/groupnew.inc.php", 0x7fffc74cb320) = -1 ENOENT (No such file or directory) lstat("/data/tdocs/webroot/go/./Widget/groupStatistical.inc.php", 0x7fffc74cb320) = -1 ENOENT (No such file or directory) lstat("/usr/share/pear/Widget/groupStatistical.inc.php", 0x7fffc74cb320) = -1 ENOENT (No such file or directory) lstat("/usr/share/php/Widget/groupStatistical.inc.php", 0x7fffc74cb320) = -1 ENOENT (No such file or directory) ~~~ ### 怎么使用它? 找出程序在startup的時候讀取的哪個config文件? ~~~ $ strace php 2>&1 | grep php.ini open("/usr/local/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/local/lib/php.ini", O_RDONLY) = 4 lstat64("/usr/local/lib/php.ini", {st_mode=S_IFLNK|0777, st_size=27, ...}) = 0 readlink("/usr/local/lib/php.ini", "/usr/local/Zend/etc/php.ini", 4096) = 27 lstat64("/usr/local/Zend/etc/php.ini", {st_mode=S_IFREG|0664, st_size=40971, ...}) = 0 ~~~ ~~~ strace -e open php 2>&1 | grep php.ini open("/usr/local/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/local/lib/php.ini", O_RDONLY) = 4 ~~~ 某個進程現在在做什么? ~~~ strace -p 15427 Process 15427 attached - interrupt to quit futex(0x402f4900, FUTEX_WAIT, 2, NULL Process 15427 detached ~~~ 是誰偷走了時間? 你可以重新編譯app,打開profiling,以獲取精確的信息。但是通常利用strace附著(attach)一個進程以快速地看一下當前時間花費在哪里非常有用。可以看下是否90%的CPU用在真正的工作,或者用在其它方面了。 ~~~ strace -c -p 11084 Process 11084 attached - interrupt to quit Process 11084 detached % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 94.59 0.001014 48 21 select 2.89 0.000031 1 21 getppid 2.52 0.000027 1 21 time ------ ----------- ----------- --------- --------- ---------------- 100.00 0.001072 63 total ~~~ ## 通信過程如何分析-tcpdump? 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網絡上的數據包進行截獲的包分析工具。 tcpdump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。 參考:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看