"Connect" Waiting to: Xdebug için IDE portu bağlantısını ayıklama

0 Cevap php

Preamble

Birçokları gibi, benim programları ayıklamak için XDebug kullanarak gelmiş daha xdebug benim IDE bağlantısı ayıklama saat daha geçirdim. I’ve gotten it to work repeatedly, ama her seferinde bir süre ben ortak olsun “Waiting to connect” problem. Ben XDebug çalışmak ya da başarısız olmasına neden ne lokalize etmek mümkün olmamıştır. Ben iki yıldır ubuntu kullanıyorum; Ben noob ne de strace gurusu biri değilim. What am I doing wrong? How can I better debug my IDE’s connection to XDebug?


Setup

  • Ubuntu 10.10
  • Netbeans 6.9.1
  • Suhosin-Patch ile PHP 5.3.3-1ubuntu9
  • tailored installation instructions script on xdebug.org kullanarak kaynağından 20 Eylül 2010 yili debugclient ile xdebug v2.1.0
  • Apache Apache/2.2.16
  • Hem / etc/php5/apache2/php.ini ve / etc/php5/cli/php.ini sahiptir:
    • zend_extension = /usr/lib/php5/20090626+lfs/xdebug.so
      xdebug.remote_enable=1
      xdebug.remote_handler=dbgp
      xdebug.remote_mode=req
      xdebug.remote_host=127.0.0.1
      xdebug.remote_port=9000
      xdebug.remote_log=/var/log/xdebug.log
      xdebug.extended_info=1
      xdebug.idekey="netbeans-xdebug"
      

Procedure

The Problem

Ben sorunun ortaya zaman soruna neden ya da ne olduğunu açıklayamam. Ben parametresi ile benim proje url açmak için seçim benim dev tarayıcı (Chrome) neden projemi, hata ayıklamaya çalıştığınızda başlar XDEBUG_SESSION_START=netbeans-xdebug. Bu Netbeans Yalnızca raporları ise sayfa krom normal hale neden "bağlayın bekliyorum."

Debugging XDebug

İlk olarak, hala hayatta "bağlan bekliyorum" mesajı ile, ben gider, hangi limana yaklaşık 9000 kazmak için netstat kullanmaya çalışacağım something like bu:

$ netstat -an | grep 9000
tcp6       0      0 :::9000                 :::*                    LISTEN     

Benim IDE kapatmaya ve üzerinde neler olup bittiğini anlamaya yardımcı olmak için iki dosya kullanmayı deneyin: {webroot}/index.php <?php phpinfo(); ?> içerir ve {webroot}/dbgtest.php içeren {[(3) }]:

<?php
$address = '127.0.0.1';
$port = 9000;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Unable to bind');
socket_listen($sock);
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);
?>

: Ben XDebug debugclient ve açık http://127.0.0.1/dbgtest.php?XDEBUG_SESSION_START=mysession, ben genelde regular output ve ardından XDebug başka bir terminal netstat komut bağlı doğrulamak alırsınız başlattığınızda

$ netstat -an | grep 9000
tcp        0      0 127.0.0.1:9000          127.0.0.1:34831         ESTABLISHED
tcp        0      0 127.0.0.1:34831         127.0.0.1:9000          ESTABLISHED

Bu iki bağlantı yapıldığını belirtmek gibi görünüyor olsa da, web sayfası ben açıklayamam ki, "bağlanılamıyor" okur. Ctrl-c debugclient çıkmak için, ve bu noktada netstat liman 9000 aktiviteye sahip olduğunu doğrular. Ben Netbeans, açık {webroot}/index.php kadar yangın ve http://127.0.0.1/index.php açılır debugger meşgul. Debugger daha sonra genellikle normal olarak başlar. Ben debugger, geri benim proje gidin durdurun ve sorun gerçekten can sıkıcı olur bu nerede: zaman bazı, ben, normal, ve diğer zamanlarda olarak benim proje ayıklarken devam edebilir, sorun yeniden ortaya ve "Waiting ise işaret, netstat gösterileri görüntüleyen "bağlayın:

$ netstat -an | grep 9000
tcp6       0      0 :::9000                 :::*                    LISTEN     
tcp6       0      0 127.0.0.1:9000          127.0.0.1:34681         TIME_WAIT 

Diğer zamanlarda, benim bilgisayarı yeniden başlatmanız bir terminali kadar yangın ve bulabilirsiniz:

$ netstat -an | grep 9000
unix  3      [ ]         STREAM     CONNECTED     9000  
$ telnet 127.0.0.1 9000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

Ben bu işaret ne olduğunu görmek için ağ ve linux internals yeterince aşina değilim. Açıkça something noktasını 9000 kullanıyor. Bu ne demek? Not php.ini benim ayarları rağmen:

$ cat /var/log/xdebug.log
cat: /var/log/xdebug.log: No such file or directory

What is the correct way to debug the connection between the IDE and XDebug?

0 Cevap