2012-04-02 53 views
3

我在我的Ubuntu 10.04筆記本電腦上運行PHP 5.3.2,Apache 2.2.14和xdebug 2.2.0rc1,我試圖在Netbeans 6.8中設置本地主機上的調試。爲什麼XDebug忽略來自NetBeans 6.8的斷點?

我的問題是我在Netbeans中設置的斷點被忽略。否則,它似乎正常工作。例如,我得到了漂亮的var_dumps,xdebug跟蹤,xdebug遠程日誌,我也可以勾選此框,以便它在PHP腳本的第一行中打破。

基於其他網站和做題(如SO1SO2SO3)我已經檢查了所有的以下內容:

  • 正在使用我編輯php.ini文件
  • 那Xdebug的加載過程中的zend_extension = /全/路徑/到/ xdebug.so(不擴展= xdebug.so)
  • 線程安全的PHP被禁用,我使用了XDebug
  • 的非線程安全的版本, p ATH到斷點在Xdebug的遠程登錄正確的(請參見下面這個列表的代碼片段,未顯示在該片段的路徑和其他人是正確的)

    <- breakpoint_set -i 1014 -t line -s enabled -f file:///var/www/mockup/test.php -n 8 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1014" state="enabled" id="135610002"></response> 
    
  • 手動調用xdebug_break()工作

我也嘗試在Netbeans項目屬性中設置服務器路徑和項目路徑,因爲它覺得這可能是問題,但它沒有幫助。目前我的服務器路徑爲/var/www/mockup,項目路徑爲/common/rsync/Dropbox/active-archives/code/Locus/mockup

但是,/var/www/mockup是一個符號鏈接,因此我甚至不知道這是否有必要?無論我是否指定路徑映射,它都不起作用...

+1

offtopic:_any原因,你還沒有升級到7.1的NetBeans _ – c69 2012-04-03 10:11:34

+0

@ C69 - 我忘了,也許已經是默認安裝在Ubuntu 10.04? – cfogelberg 2012-04-04 12:46:32

回答

1

Xdebug(通過PHP)尚不支持符號鏈接(在http://bugs.xdebug.org/view.php?id=627處有一個問題)。 PHP/Xdebug的始終使用完全展開的鏈接,因此您將需要確保NetBeans的設置斷點,如:

breakpoint_set -i 1014 -t line -s enabled -f file:///common/rsync/Dropbox/active-archives/code/Locus/mockup/test.php 

你將不得不建立一個路徑映射。在驗證breakpoint_set包含正確的路徑後,它應該可以工作。

+0

Thanks @derick。我昨晚進行了一個快速測試,並確認它可以工作,如果我直接在/ var/www中設置項目。但是,我仍然無法在別處工作 - 也許我的服務器路徑映射設置不正確? --- 例如在Xdebug的遠程登錄我越來越有文件條目:///common/rsync/Dropbox/active-archives/code/Locus/mockup/test.php,我設置的服務器路徑到/ var/WWW /樣機該項目的路徑/普通/ rsync的/ Dropbox的/主動檔案/代碼/軌跡/樣機,但它仍然會跳過斷點?再次感謝! – cfogelberg 2012-04-04 12:37:39

2

@德里克的輸入號樓上,該工程的解決方案是:

  • 變化NetBean項目屬性從源文件夾中的文件複製到/var/www/Locus
  • 刪除所有路徑從運行配置
  • 點圖我瀏覽器在localhost/Locus/

換句話說,它不是在的路徑會導致問題的源文件的符號鏈接,但是符號鏈接s也在服務器路徑中。

0

這是我如何固定它:

在我的本地環境的XAMPP我的Mac上我已經設置一個映射到一個目錄apache的根目錄(/源/ MY_PROJECT)之外的虛擬主機。我在Net Beans中的項目設置爲使用/ source/my_project作爲項目的位置。所以,我沒有「」因爲我是用在Apache虛擬主機並不比我用的網豆有什麼不同的路徑URL映射問題。或者,也許Apache認爲這個目錄不同於Net Beans,在任何情況下我都無法使路徑映射工作。但是,當我移動/源/ MY_PROJECT到/阿帕奇/ htdocs中/ MY_PROJECT和我使用的路徑,我的網豆項目源,並映射虛擬主機我到該目錄,然後調試工作。附:我在/ source/my_project上設置了版本控制,因此我將my_project更改爲符號鏈接,並且它仍然可以在subversion中使用。