Harici istek üzerine NetBeans XDebug başlatın

3 Cevap php

Ben NetBeans (Project-> Debug) içinde başlatılması isteği, benim makinede bir PHP sitesi hata ayıklamak için Netbeans'ı 6.7 ve XDebug kullanıyorum. Bu iyi çalışır ve çok yararlıdır.

Benim soru şudur: gelen herhangi bir istek hata ayıklayıcı eklemek mümkün mü, değil sadece o ben NetBeans içinde başlatacak?

yani, bunun yerine "Debug" tıklayarak, hata ayıklayıcı başlatılan sayede moduna Netbeans'ı koymak ve içeri gelir sonraki isteği bağlanır

Ben bu aptal bir soru olabilir bir duygu var, ama eğer mümkünse, bu harika olurdu.

Edit: Biraz daha bilgi

Aşağıdaki gibi benim sistem (Ubuntu 9.04) kurulur:

/etc/php5/conf.d/xdebug.ini İçeriği

zend_extension=/usr/lib/php5/20060613/xdebug.so

xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug

NetBeans PHP hata ayıklama seçenekleri varsayılan altındadır:

Debugger Port: 9000
Session ID: netbeans-xdebug
Stop at the First Line: ticked

Benim /etc/hosts dosya yönlendirmeleri www.mywebsite.com için localhost

Ben NetBeans hata ayıklama butonuna tıklarsanız, daha sonra Firefox adres http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug ile başlatılan, ve beklendiği gibi debugger çalışır.

Ben sadece http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug gözatın Ama eğer, bu NetBeans hata ayıklayıcı başlamaz.

Ben de xdebug.remote_host=www.mywebsite.com ayar denedim, ama hiçbir fark yapar.

Ayrıca, xdebug.remote_log etkin ettik, ve ben netbeans içinde başladığınızda bilgileri gösteren, ancak dış istekleri için bir şey var. Yani XDebug hiç dış talepler görmeye sanmıyorum.

3 Cevap

project properties> run configuration> advanced> debug url gidin ve (*) do not open web browser edin. not debugger proxy altında ana ayarlarım. Bu ayarları kaydetmek. Proje penceresinde, projenizde: right mouse click> debug (bu debug bağlantılar için dinleme başlar). Hiçbir tarayıcısı başlatılır. tarayıcınızda http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug girin. bu netbeans ayrılmalıyız. en azından burada ne var :)

(*) Ayrıca bir path mapping ayarlamak zorunda kalabilirsiniz - benim için, o olmadan çalışır

By default xdebug will not attempt to connect to the remote host when the 'XDEBUG_SESSION_START' Cookie/URL argument wasn't specified. You can enable xdebug to be "always on", by setting the xdebug.remote_autostart to 1 in the php.ini.

Ayrıca, bu iş için NetBeans PHP hata ayıklayıcı başlamak zorunda kalacak. Ben henüz daha iyi bir çözüm bulamadı, ancak PHP hata ayıklayıcı rasgele bir dosya (bir dosya hata ayıklama başlatmak için CTRL + SHIFT + F5 kullanın) ve ardından (F5 tuşuna basarak) devam debug başlayarak gelen bağlantılar için dinleme olabilir kez o kesme noktasında durdu. Aslında bunu durdurana kadar Netbeans ayıklayıcı çalışmalıdır.

Güncelleme: nedeniyle oturum kimliği (XDEBUG_SESSION_START) kontrol NetBeans'e, çok idekey değişkeni ayarlamak zorunda. örneğin:

xdebug.remote_autostart = 1
xdebug.idekey = "netbeans-xdebug"

Netbeans, ama ben kullandım başka bir IDE her bir hata ayıklama bağlantı için dinleme konusunda emin değil. Sen url sorgu dizesi ?XDEBUG_SESSION_START=name ekleyerek xdebug yeni bir hata ayıklama oturumu başlatabilirsiniz. Netbeans dinleme ise, bu daha sonra yeni bir hata ayıklama oturumu başlaması gerekir.

http://xdebug.org/docs/remote#browser%5Fsession daha fazla bilgi için bkz: