debug

  • Hallo,

    die debug library scheinen viele Projekte erfolgreich zu benutzen. Eigentlich funktioniert das auch für mich.
    Nur nicht wenn ich versuche das in einem child_process.fork zu benutzen !
    Dann scheint der child process gar nicht zu laufen

    Benutzt jemand debug in einem child process ?
    Irgendeine Idee warum das so sein kann

    Danke vorab für jeden Tip zum Thema.
    Gruß,
    Volker
  • Kann ich leider nicht nachvollziehen.

    Ich hab die Debug-Umgebung mit $env:DEBUG = "*" bzw. set DEBUG=* eingestellt und folgenden Quellcode verwendet:

    JavaScript-Quellcode: main.js

    1. const debug = require('debug')('main')
    2. const child_process = require('child_process')
    3. debug('running')
    4. child_process.fork('./child.js')

    JavaScript-Quellcode: child.js

    1. const debug = require('debug')('child')
    2. debug('running')

    Die Ausgabe war wie zu erwarten:

    Shell-Script

    1. main running +0ms
    2. child running +0ms


    Ich verwende Node v7.5.0 auf Windows 10 in der Powershell im Visual Studio Code v1.9.1.
  • Dein Beispiel funktioniert auch für mich auf Win 7 und Linux mit je node v6.5.0. Ist den v7.x schon produktiv ein zu setzen ?

    Vielleicht liegt es auch am Code....wenn ich da debug einbaue, sehe ich nicht mal mehr die console.logs von vorher...
    habe meinen Versuch angehängt
    die Ausgührung startet in forTest3 Zeile 122
    Dateien
    • forkTest3.js

      (3,55 kB, 25 mal heruntergeladen, zuletzt: )
    • forkMe3.js

      (1,09 kB, 22 mal heruntergeladen, zuletzt: )
  • v_k schrieb:

    Ist den v7.x schon produktiv ein zu setzen ?
    Nicht wirklich. Ich hab es auf meiner Development Maschine, hatte aber schon mal Probleme mit 7.1 bis 7.3. Da ich für das Intranet schreibe ist die Produktionsreife eine Ermessensfrage. Ich würde für die Produktion zur einer LTS raten, werde aber die v8 dennoch gleich auf die Produktionsanlagen bringen, auch wenn sie noch nicht auf LTS gestellt ist. (Der Feature-Gewinn lohnt für mich das Risiko).



    Ich hab mal ein bisschen mit deinem Code gespielt. Versuch mal in Zeile 78 der "forkTest3.js" das "options"-Objekt raus zunehmen. "detached" ist eigentlich nur für child_process.spawn und nicht für child_process.fork. Das scheint komische Sachen mit stdin und stdout zu machen. Das debug-Modul modifiziert ja console.log. Daher könnte also das Problem kommen.
  • ist in der neuen Version eigentlich schon das ,mit dem Shared memory drin (hatte da was gelesen daß da was kommen soll ) ?

    habe in der Tat einiges rausnehmen können und dann funktioniert das auch. Ich hatte auch in dem Child Process noch mal einen process gestarted..was ich nicht brauche. Irgendwie werden meine Scripte immer noch viel zu groß... =O

    der Vollständigkeithalber in Anhang der reduzierte Code
    Dateien
    • forkMe4.js

      (462 Byte, 22 mal heruntergeladen, zuletzt: )
    • forkTest4.js

      (2,84 kB, 22 mal heruntergeladen, zuletzt: )