Ho cercato di eseguire il debug di Eclipse per capire cosa sta succedendo nel mio Mac OS X.
In primo luogo trovare il processo di Eclipse corrente in esecuzione:
$ ps -ef | grep eclipse
501 15160 373 0 4:21PM ?? 2:57.19 /Users/myuser/apps/eclipse/Eclipse.app/Contents/MacOS/eclipse -psn_0_651423
Poi tracciare sistema Eclipse chiamate:
$ sudo dtruss -fp 15160
[... omissis ...]
accept(0xA0, 0x1224C37E8, 0x1224C37E4) = 103 0
setsockopt(0x67, 0xFFFF, 0x1002) = 0 0
setsockopt(0x67, 0xFFFF, 0x1001) = 0 0
read(0x67, "4\0", 0x1) = 1 0
read(0x67, "7\0", 0x1) = 1 0
read(0x67, "7\0", 0x1) = 1 0
read(0x67, "\0", 0x1) = 1 0
read(0x67, "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<init xmlns=\"urn:debugger_protocol_v1\" xmlns:xdebug=\"http://xdebug.org/dbgp/xdebug\" fileuri=\"file:///opt/local/var/db/php5/pear/pear-ini.php\" language=\"PHP\" protocol_version=\"1.0\" appid=\"14961\" idekey=\"ECLIPSE_DB", 0x1DD) = 477 0
read(0x67, "\0", 0x1) = 1 0
[... omissis ...]
Qui ho preso la prima riga inviata da xdebug.
È la linea in cui eclissi sta leggendo un pezzo di XML. Suppongo che questa sia la parte DBGp.
<?xml version="1.0"
encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1"
xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
fileuri="file:///opt/local/var/db/php5/pear/pear-ini.php"
language="PHP"
protocol_version="1.0"
appid="14961"
idekey="ECLIPSE_DB
Guardando fileuri
ho scoperto Xdebug sta cercando di iniziare la sessione di debug con /opt/local/var/db/php5/pear/pear-ini.php
. Il file pear-ini.php
non esiste nei miei progetti eclissi.
Così ho creare un nuovo progetto all'interno del mio lavoro di Eclipse e qui ho copiato il file /opt/local/var/db/php5/pear/pear-ini.php
Funziona, Eclipse PDT ora si trova il file che stava cercando e il debugger, infine, avvia correttamente. Mi sta anche chiedendo se mi piacerebbe passare alla prospettiva Debug.
Conclusione
Se ci si imbatte in questo strano errore: "Nessun file appropriato situato o nessun file selezionato", così significa esattamente ciò che è scritto. Ok, il mio Eclipse non è stato in grado di trovare il file, ma significava anche che stava cercando di trovare un file fuori dal suo spazio di lavoro. Può essere un file caricato dal motore PHP per qualche strana ragione. Nel mio caso pear-ini.php
viene aggiunto automaticamente dal pear.ini
$ cat pear.ini
; Do not edit this file; it is automatically generated by MacPorts.
; Any changes you make will be lost if you upgrade or uninstall php5-pear.
; To configure PHP, edit /opt/local/etc/php5/php.ini.
auto_prepend_file = '/opt/local/var/db/php5/pear/pear-ini.php'
+1 per piacevoli ricerche, i vostri sforzi sono stati apprezzati. – SparKot
Grazie :) Il messaggio di errore è stato davvero fastidioso, anche perché non ha spiegato esattamente cosa c'è che non va. – freedev
Commento eliminato: trovata la soluzione. Grazie mille, molto per aver postato questo !! –