Wie kann ich den Erlang Code debuggen?

Habe ich einige Ruby-und Java-hintergrund und ich bin daran gewöhnt, dass genaue zahlen der Zeilen des error logs.

Also, wenn es ist ein Fehler im kompilierten code, werde ich die Nummer der Zeile, die die Ausnahme verursacht hat, die in der Konsole ausgegeben.

Wie in diesem Beispiel Ruby:

my_ruby_code.rb:13:in `/': divided by 0 (ZeroDivisionError)
    from my_ruby_code.rb:13

Es ist einfach und schnell - ich gehe einfach auf die Nummer der Zeile 13 und beheben Sie den Fehler.

Im Gegenteil, Erlang nur sagt so etwas wie:

** exception error: no match of right hand side value [xxxx]
 in function my_module:my_fun/1
 in call from my_module:other_fun/2

Gibt es keine Zeilennummern zu betrachten.

Und wenn ich zwei Zeilen wie

X = Param1,
Y = Param2,

in 'my_fun', wie kann verstehen, in welcher Zeile das problem liegt?

Darüber hinaus habe ich versucht zu wechseln, um Emacs+Elang-Modus von Vim, aber der einzige bonus, den ich habe, so weit ist die Fähigkeit, den Zyklus durch Kompilierungsfehler in Emacs (C-k `).

Also, der Prozess des Schreibens von code und auf der Suche nach einfachen logischen Fehler wie "no match of right hand side" scheint ein wenig umständlich.

Ich habe versucht, fügen Sie eine Menge von "io:format" - Zeilen im code, aber es ist zusätzliche Arbeit, die Zeit braucht.

Habe ich auch schon versucht zu verwenden distel, aber es erfordert 10 Schritte zum öffnen Sie einfach ein debugger einmal.

Fragen:

  1. Was ist am meisten gerade und einfache Weg, um debug-Erlang-code?
  2. Macht Emacs' erlang-Modus hat sich etwas überlegen in Bezug auf Erlang Entwicklung im Vergleich zu Vim?
  3. Was die Entwicklung 'write-compile-debug" - Zyklus bevorzugen Sie? Lassen Sie Emacs zu kompilieren und führen Sie den code in das terminal? Wie suchen Sie für Fehler in Ihrem Erlang-code?
Kommentar zu dem Problem
Bitte wählen Sie die Antwort löste Ihre Frage, wenn überhaupt. Kommentarautor: Adam Lindberg

InformationsquelleAutor der Frage Kirill | 2011-06-22

Schreibe einen Kommentar