2017-06-14 1 views
0

Ich möchte eine Open-Source-Software als Nachrichten-Broker (EMQTT https://github.com/emqtt/emqttd) lernen, aber wenn ich versuche, einige Code ändern und verfolgen, wie Nachrichten fließen, gibt es ein Problem, dass die Intellij Idee scheint nur zu debuggen eine Erlang-Funktion oder ein Modul gleichzeitig. Gibt es eine Möglichkeit, dass ich das gesamte Projekt debuggen und mit Breakpoint verfolgen kann, anstatt sie einzeln zu debuggen? enter image description hereWie debugge ich ein Erlang-Projekt mit Intellij Idee?

Antwort

0

Intellij Verwendet Rebar als Projektmanager. Rebar war veraltet und Rebar3 (neue Version von Rebar) ist mit erweiterten Funktionen verfügbar.

Sie können rebar3 und seine erweiterten Funktionen zum Ausführen von Tests & Dialysator verwenden.

EMQTT unterstützt travis!
Sie können es verzweigen und travis in Ihrem Projekt aktivieren. travis ist eine Testplattform und testet Ihr Projekt nach jeder Änderung. siehe
für weitere Informationen travis docs

+0

Das Erlang-Plugin für Intellij unterstützt rebar3 seit Anfang 2017. Aber beachten Sie, dass rebar und der Erlang-Debugger keine Beziehung haben, also ob Intellij rebar3 unterstützt oder nicht, hat keinen Einfluss auf die Frage. Travis gehört nicht zu Github. –

0

Nach einigen Tagen versucht, ich habe eine Methode gefunden, die verwendet werden könnten debugge mit IntelliJ IDEA, ist es nicht als Präfekt als Methode würde ich finden mögen, aber es hilft, Irgendwann poste es einfach hier für jemanden, der es nötig hat zu referenzieren.

  1. cd in das Verzeichnis, in dem * .erl Datei befindet.
  2. mit c kompilieren ("Ihrer erl Datei", DEBUG_INFO). Beim Kompilieren muss eine debug_info vorhanden sein, andernfalls wird beim Debugging der Fehler "no debug info in beam file" angezeigt.

  3. Konfigurationsparameter entsprechend Ihrem Modul, unten Abbildung ist als Referenz. Sie können Funktion args benötigen geben, wenn Ihre Funktion args muss

ps: Das ist relativ redundant mit Schale zu kompilieren, aber es ist die einzige Methode, die ich gefunden konnte funktioniert, wenn kein Strahl-Datei geliefert wird, ist es immer erhöhen Fehler: "keine Strahldatei".

Wenn jemand eine bessere Methode hat, bitte geben Sie mir eine Hilfe, ob durch die Beantwortung dieser Frage oder einen Kommentar, vielen Dank!

enter image description here

0

Ihre Lösung die Quelldateien und Artefakte in einem Verzeichnis mit scheint der einzige Weg zu sein, den Intellij Debugger zu verwenden. Da sich Quelldateien und Artefakte normalerweise nicht im selben Verzeichnis befinden, erscheint dieses Verhalten seltsam. Ich habe daher ein Problem (https://github.com/ignatov/intellij-erlang/issues/811) geöffnet.

Eine Lösung, die mit rebar3 und eunit funktioniert, ist in How to debug erlang code during rebar3 eunit? beschrieben. Sie können rebar3 als Test-Shell in Intellij starten, indem Sie die Unterstützung für das Ausführen eines rebar3-Befehls verwenden, der mit dem erlang-Plugin bereitgestellt wird.