Angenommen, ich verwalte komplexe Anwendungen, die mit externen Systemen verbunden sind. Eines Tages beginnt es, unerwartete Ergebnisse für bestimmte Eingaben zurückzugeben, und ich muss herausfinden, warum. Es könnte DNS-Problem sein, filesytem-bezogenes Problem, externe Systemänderung, irgendetwas.Code-Instrumentierung in Haskell
Unter der Annahme, dass die Menge der Verarbeitung umfangreich ist, bevor ich mögliche Standorte des Problems identifizieren kann, müsste ich detaillierte Spuren erhalten, die die ursprüngliche Anwendung nicht erzeugt.
Wie kann ich vorhandenen Code instrumentieren, so dass ich (z. B.) einen nichtflüchtigen Beweis (keine Live-Debugsitzung) liefern kann, dass eine bestimmte Komponente oder Funktion einen Fehler aufweist.
Ich folge dir nicht ganz, aber [ekg] (http://hackage.haskell.org/package/ekg) ist ein ziemlich großartiges Tool, mit dem man beliebige Zähler und Werte in 'IO' setzen kann. – jberryman
@jberryman Klingt so, würde eine gute Antwort geben. –