<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國際加速解決方案。 廣告
                xdebug配合IDE調試層經是老楊解決特殊bug的大法寶,像flash上傳這種,用xdebug調試最好不過了。他適合于不確定bug在哪的情況,可以從過程中觀察數據的變化。 ## Xdebug的安裝 首先去官網下載: <http://xdebug.org/download.php> ![官網下載](http://box.kancloud.cn/2015-05-10_554f7107c62aa.png) windows的下載對應php版本的dll,linux的要自己編譯。 ### windows上php 擴展dll的選擇 用戶常常會發現每個 DLL 都有好幾個版本: - 不同的版本號(至少前兩個數字要一致) - 不同的線程安全性設定 - 不同的處理器體系(x86,x64,...) - 不同的排錯設定 - 其它 請記住用戶的擴展設定應該與所使用的 PHP 可執行文件的設定都保持一致。在phpinfo中我們可以輕松的看出php的版本和ts是否線程安全 ### linux的php so的編譯 phpize 命令是用來準備 PHP 擴展庫的編譯環境的。下面例子中,擴展庫的源程序位于 extname 目錄中: ~~~ $ cd extname $ phpize $ ./configure $ make # make install ~~~ 成功的安裝將創建 extname.so 并放置于 PHP 的擴展庫目錄中。需要調整 php.ini,加入 extension=extname.so 這一行之后才能使用此擴展庫。 如果系統中沒有 phpize 命令并且使用了預編譯的包(例如 RPM),那要安裝 PHP 包相應的開發版本,此版本通常包含了 phpize 命令以及相應的用于編譯 PHP 及其擴展庫的頭文件。 使用 `phpize --help` 命令可以顯示此命令用法。 ### xdebug的配置 一般只要在php.ini 加上以下配置就行了: ~~~ [xdebug] xdebug.remote_enable = on xdebug.remote_port = 9000 xdebug.remote_handler=dbgp xdebug.remote_host=localhost ~~~ 保存完畢,重啟別忘了重啟apache 然后 phpinfo頁面里看有沒有出現像下圖的xdebug: ![xdebug](http://box.kancloud.cn/2015-05-10_554f759e8c4cb.png) ## Netbeans的設置 ##### 先打開一個本地項目: ![打開本地項目,以后面的案列freelog為例](http://box.kancloud.cn/2015-05-10_554f76da72b2c.png) ##### 配置調試時的地址: ![配置調試地址](http://box.kancloud.cn/2015-05-10_554f771d539b0.png) **freelog.cn**是我配的vhost,當然你們也可以用**localhost**,不過不建議直接使用**localhost**。 ##### 設置斷點 打開項目,找到 `Home/Controller/IndexController.class.php`,隨便設置兩個斷點 ![設置斷點](http://box.kancloud.cn/2015-05-10_554f77ef7a100.png) 設置斷點方法是在要設置斷點的行前面,代碼折疊gutter 里 “單擊” 鼠標左鍵。取消是再單擊一次已有斷點。 然后開始“調試該項目”: ![調試項目](http://box.kancloud.cn/2015-05-10_554f7860c3917.png) 這時候,netbeans 會 打開默認瀏覽器,我的是chrome。 ![2015-05-10/554f78afba1cb](http://box.kancloud.cn/2015-05-10_554f78afba1cb.png) 這時候,netbeans 默認是設置在代碼第一行停止, netbeans 界面出現我這樣的圖,就表示xdebug 連接成功: ![2015-05-10/554f791886b16](http://box.kancloud.cn/2015-05-10_554f791886b16.png) 這是我們可以點“步過” ![步過按鈕](http://box.kancloud.cn/2015-05-10_554f79477aa31.png) 一行行繼續 往下調試,直到第一個斷點游標行變綠: ![進入第一個斷點](http://box.kancloud.cn/2015-05-10_554f79af6a5b1.png) 這時候下面已經可以看到調用堆棧了。 切斷到變量頁: ![變量面板](http://box.kancloud.cn/2015-05-10_554f7a2827561.png) 這時候我們已經可以看到 `$page`了,還有$Superglobals(超全局變量),以及`$this`。$page 變量的類型是Integer 整形,值為1。 `$this` 我們展開它,可以看見有view和config2個屬性。 ![2015-05-10/554f7acf51521](http://box.kancloud.cn/2015-05-10_554f7acf51521.png) 我們繼續步過,進入到lists方法里: ![進入lists方法](http://box.kancloud.cn/2015-05-10_554f7b297e874.png) 又可以看到下面的變量值。 當我們所有斷點都執行過后,點綠色的“繼續”按鈕: ![2015-05-10/554f7b70286e0](http://box.kancloud.cn/2015-05-10_554f7b70286e0.png) 走完調試index 控制器的index方法。這時候瀏覽器里的頁面就正常了: ![正常演示項目首頁](http://box.kancloud.cn/2015-05-10_554f7b9f6ad6e.png) 調試就結束了。當然如果你一開始沒設定對斷點,有可能沒走到你想要的地方。 你可以隨時添加,只要不結束調試,刷新一下那個 帶netbean session參數的頁面,只要能繼續訪問你想要的控制器,比方ajax 上傳文件,再次操作。還會進調試的斷點。 所以一般我都是多設幾個斷點,幾次調試后無關行數的斷點再關閉。這樣省點事。 當我們覺得不必要調試了。我們就可以點紅色“終止”按鈕: ![2015-05-10/554f7c7bc3db2](http://box.kancloud.cn/2015-05-10_554f7c7bc3db2.png) 瀏覽器出現: ![2015-05-10/554f7ca06b0dd](http://box.kancloud.cn/2015-05-10_554f7ca06b0dd.png) 就表示調試結束了。
                  <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>

                              哎呀哎呀视频在线观看