Ergebnis 1 bis 7 von 7

Thema: Cli-Script debuggen mit XDebug

  1. #1
    Neuer Benutzer
    Registriert seit
    18.06.2012
    Beiträge
    16
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard Cli-Script debuggen mit XDebug

    Hallo,

    ich habe ein kleines Problem mit dem Debugging von CLI-Scripten mithilfe von XDebug in Zend Studio.

    In meiner Anwendung werden die CLI-Skripte über folgenden Befehl aufgerufen:

    Code:
    exec($this->getCommand());
    In $this->getCommand() steht hier zb.:

    Code:
    php 'pfad/cliScript.php'

    Ist es nun irgendwie machbar, dass XDebug beim Debugging der Anwendung auch in dieses CLI-Script reingeht?


    Beste Grüße
    Kai

  2. #2
    Erfahrener Benutzer Avatar von SeKrebs
    Registriert seit
    04.02.2011
    Beiträge
    1.599
    Thanks
    1
    Thanked 41 Times in 40 Posts

    Standard

    Zitat Zitat von andos Beitrag anzeigen
    Hallo,

    ich habe ein kleines Problem mit dem Debugging von CLI-Scripten mithilfe von XDebug in Zend Studio.

    In meiner Anwendung werden die CLI-Skripte über folgenden Befehl aufgerufen:

    Code:
    exec($this->getCommand());
    In $this->getCommand() steht hier zb.:

    Code:
    php 'pfad/cliScript.php'

    Ist es nun irgendwie machbar, dass XDebug beim Debugging der Anwendung auch in dieses CLI-Script reingeht?


    Beste Grüße
    Kai
    Nein.
    "KingCrunchs kleine Welt" -- Blog
    The problem with rats leaving a sinking ship is that they usually do it by gnawing holes in the bottom.

  3. #3
    Neuer Benutzer
    Registriert seit
    18.06.2012
    Beiträge
    16
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Najo hab es nun hinbekommen, dass es so läuft wie ich es benötige.

    Der Befehl für den Aufruf des CLI-Scriptes muss folgendermaßen aussehen:

    Code:
    php -d xdebug.remote_autostart=1 'pfad/cliScript.php'
    Dann wird für das Kindscript ne weitere XDebug-Session gestartet und man kann das dann weiter debuggen aus der Anwendung heraus.

  4. #4
    Erfahrener Benutzer Avatar von SeKrebs
    Registriert seit
    04.02.2011
    Beiträge
    1.599
    Thanks
    1
    Thanked 41 Times in 40 Posts

    Standard

    Nur so: Wieso debuggst du das Script nicht explizit?
    "KingCrunchs kleine Welt" -- Blog
    The problem with rats leaving a sinking ship is that they usually do it by gnawing holes in the bottom.

  5. #5
    Neuer Benutzer
    Registriert seit
    18.06.2012
    Beiträge
    16
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Weil mir dann Parameter fehlen, die in der Anwendung vorher gesetzt werden. Wir wollen halt, dass wenn man die Anwendung debugged, die CLI-Scripte auch gleich mit debugged werden.

  6. #6
    Erfahrener Benutzer Avatar von SeKrebs
    Registriert seit
    04.02.2011
    Beiträge
    1.599
    Thanks
    1
    Thanked 41 Times in 40 Posts

    Standard

    Zitat Zitat von andos Beitrag anzeigen
    Weil mir dann Parameter fehlen, die in der Anwendung vorher gesetzt werden.
    Kann man doch setzen, ist doch nichts dabei ?

    Wo ich schon mal dabei bin hinterfrage ich auch gleich: Ist es denn notwendig, dass da an der Stelle tatsächlich ein externen Script via exec() aufgerufen wird, anstatt die (hoffentlich) Klasse, die darin aufgerufen wird, direkt einzubinden und aufzurufen? Du hast da nämlich einen klitzekleinen Overhead von insgesamt zwei neuen Prozessen bei jeden Aufruf: exec() startet einmal für sich selbst eine Shell und erst da drin wird dann noch ein neuer php-Prozess erzeugt [1]. Wenn das Skript nicht (sagen wir mal) 5 oder 10 Sekunden läuft, lohnts sichs kaum und bei kurzlebigen Skripten wird es dann sogar schädlich (Prozesse erzeugen ist nicht so trivial), denn schließlich blockiert exec().
    Wir wollen halt, dass wenn man die Anwendung debugged, die CLI-Scripte auch gleich mit debugged werden.
    Ist nichts persönlich, aber bei "Ich/Wir wollen halt..." kribbelts bei mir immer etwas unangenehm :X


    [1]
    PHP-Code:
    // foo.php
    sleep(60); // damit wir bisschen Zeit haben
    // bar.php
    exec(__DIR__ '/foo.php'); 
    bar.php aufrufen und via htop (als Baumansicht) mal nachschauen (geht bestimmt auch besser, mir reichts ^^).
    Geändert von SeKrebs (29.08.2012 um 17:04 Uhr)
    "KingCrunchs kleine Welt" -- Blog
    The problem with rats leaving a sinking ship is that they usually do it by gnawing holes in the bottom.

  7. #7
    Neuer Benutzer
    Registriert seit
    18.06.2012
    Beiträge
    16
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Naja wir brauchen die CLI-Scripte in unsrer Anwendung, weil wir damit auch Prozesse anstoßen, die mehrere Tage laufen können.. Von daher geht das kaum anders. Wie auch immer, will dir jetzt auch nicht unser ganzes Projekt vorstellen, an dem ich arbeite muss nämlich noch bisl weiterarbeiten

Ähnliche Themen

  1. StripTags läßt <script>...</script> durch??
    Von snorri im Forum Einsteigerfragen
    Antworten: 14
    Letzter Beitrag: 05.02.2011, 09:57
  2. Tests debuggen
    Von Shnapoo im Forum Testing & Deployment
    Antworten: 7
    Letzter Beitrag: 16.08.2009, 13:01
  3. eclipse & ZF debuggen
    Von bonzei im Forum IDE's, Debugging & Profiling
    Antworten: 8
    Letzter Beitrag: 18.07.2008, 13:03
  4. Zend_Session debuggen
    Von donbosco im Forum IDE's, Debugging & Profiling
    Antworten: 6
    Letzter Beitrag: 10.03.2008, 14:50
  5. PDT und Controller debuggen
    Von TeeJay im Forum IDE's, Debugging & Profiling
    Antworten: 24
    Letzter Beitrag: 27.06.2007, 00:08

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •