2014-09-01 10 views
5

Gibt es einen Tracing Debugger wie dbg für Haskell oder OCaml?Gibt es einen Tracing-Debugger wie `dbg` für Haskell oder OCaml?

Sehr informell, ist das Debugging im printf-Stil nur besser, vollständig konfigurierbar zur Laufzeit. Im Wesentlichen kann der Benutzer einen Trace-Handler registrieren, wenn ein System läuft, der bei jeder Aktion aus einer Reihe von Aktionen aufgerufen wird, die von der Laufzeit unterstützt werden (zB bei jedem Funktionsaufruf/-rücklauf, bei jeder gesendeten/empfangenen Nachricht etc.) . Solch ein Handler kann jede Operation protokollieren, was eine schöne Abfolge aller Schritte ergibt, die in (einem Teil des) Systems stattfinden.

Dieser Mechanismus kann zum Protokollieren/Debuggen und Profilieren bestimmter Teile des Systems verwendet werden, aber in vielen Fällen nur zum Entdecken, wie ein neues (dem Programmierer unbekanntes) System funktioniert.

+0

'ocamldebug' verfügt nicht über das Trace-Stil-Debugging, von dem Sie sprechen, unterstützt aber Breakpoints und Zeitreisen. Es gibt auch Profiling-Unterstützung von zusätzlichen Tools/Flags. – nlucaroni

+1

Obwohl kein Debugger per se, hat die OCAML-Top-Ebene '# trace' und' # install_printer', die einen langen Weg gehen können. – Nikos

Antwort

4

Für Haskell bietet GHCi einen einfachen Imperativ-Debugger. Schau es ist documentation um mehr Details darüber zu finden. Einige seiner Funktion sind

  • Fähigkeit, einen Haltepunkt
  • Stepping durch die Ausführung
  • Inspizieren lokale Variablen zu setzen
  • Behandlung von Ausnahmen als Haltepunkte
  • Typing in jedem Code, um sie auszuführen sofort
+0

In der Tat. Für die Aufzeichnung finde ich GHCi's Fähigkeit, irgendeinen Code zu laufen, den ich mag, mit irgendwelchen Argumenten, die ich mag _far_ nützlicher als irgendeine Reihe von traditionellen Debugging-Werkzeugen. – AndrewC

+0

(bitte verzeih oder rolle den frechen Schnitt zurück) – AndrewC

+1

@AndrewC Das ist in Ordnung. :) Tatsächlich verwende ich 'ghci' nur für die Funktion, die Sie aufgelistet haben. – Sibi

Verwandte Themen