2012-11-10 47 views
0

我試圖讓NetBeans或Komodo IDE遠程調試PHP。我在開發機器上安裝了一個遠程網站,該機器是運行Mountain Lion的Mac。 Xdebug已安裝。本地機器上的網站在瀏覽器中正常運行。連接到Mysql時使用Xdebug與Netbeans或Komodo失敗

但是,對於NetBeans和Komodo IDE,當單步執行代碼時,執行mysqli_connect的嘗試失敗。在NetBeans中存在以下錯誤信息:

插座出現異常如果您有任何手錶,嘗試取出並重新啓動調試器。如果刪除手錶並沒有幫助,或者您的手錶沒有任何手錶,請提交問題並提供確切的 步驟來重現您的問題。請附上IDE日誌。附加 您的項目也會非常有幫助。

我看到其他人報告此錯誤消息,但沒有提供任何幫助。

在Komodo IDE中,失敗發生在同一位置,但根本沒有提供錯誤信息。

NetBeans中的有趣之處在於,在單步執行完網站的第一頁之後,如果從那一點開始運行代碼,它將執行而不會失敗,並且網頁將顯示在瀏覽器中!這意味着問題只出現在單步執行時。

我在NetBeans中發現了一些有關錯誤的地方。但是看起來很明顯NetBeans應該不能單步執行試圖連接到mysql的代碼。相反,我認爲這將是我的系統上的一些配置問題。

無論是單步執行還是以其他方式運行,科莫多IDE都有同樣的故障。它只是沒有超過這一點。

但是,請記住,只是在瀏覽器中運行該網站工作正常。那麼什麼是缺少防止Xdebug單步連接到MySQL?

**附加信息**

我發現xdebug.so的兩個實例,我的系統上。

-rwxr-xr-x 1 root admin 274508 Oct 6 2011 /opt/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so 
-rwxr-xr-x 1 root wheel 202672 Sep 20 20:01 /usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so 

此外,還有它引用xdebug.so在/ opt /本地路徑的/opt/local/var/db/php5/xdebug.ini。/usr/lib路徑中的xdebug.so是我認爲正在使用的那個,它對應於應該安裝在哪裏的說明。

這些顯然是xdebug.so的兩個不同版本。這可能與我的問題有關嗎?

+0

例如,你在komodo IDE中的xdebug日誌是什麼?你可以發佈你的xdebug設置嗎? – Bytemain

+0

什麼是您的xdebug日誌和xdebug設置?爲什麼有不同的版本?該文件夾的版本號是否相同? – Bytemain

+0

我在哪裏可以找到xdebug設置? –

回答

2

您需要確保您正在運行一個版本的Xdebug - 並確保這是最新版本(目前是2.2.1)。如果您仍然可以重現此問題,請使用腳本(包含所有代碼+數據!)在http://bugs.xdebug.org上提交錯誤報告,並使用該腳本提供調試會話的遠程調試日誌(請參閱http://xdebug.org/docs/all_settings#remote_log以瞭解如何使此類腳本一個日誌)。

+0

我安排使用xdebug的每個實例。結果發現,我相信OS X的版本是2.1.2,我安裝的版本是2.1.3。我從ActiveState獲得的後一個版本,我想與Komodo一起使用,所以我認爲該版本應該可以工作。我將稍微設置一下remote_log並查看提供的內容。 –

+0

我嘗試了一個更新版本的xdebug,但它似乎獲得了我自己構建它的最新版本。目前爲止我發現的構建指令不適用於OS X.我發現了一些,但XCode顯然需要提供c編譯器。無論如何,我回到ActiveState網站,下載了他們現在擁有的版本,這是我剛剛得到的一個顛簸。把它放在適當的位置並運行phpinfo,表明它是2.2.0-komodo。我認爲應該可以工作,並且很快會發布更新。 –

+0

Hooray!使用2.2.0-komodo,單步調試現在可以正確執行mysqli_connect語句。不僅如此,NetBeans中的遠程調試也在工作。所以我可以把這個標記爲公認的答案,除了我不需要xdebug 2.2.1,但是xdebug 2.2.0-komodo已經足夠。 –