Tengo algunos antecedentes de Ruby y Java y estoy acostumbrado a tener un número exacto de líneas en los registros de errores.¿Cómo depurar el código de Erlang?
Por lo tanto, si hay un error en el código compilado, veré el número de línea que causó la excepción en la salida de la consola.
Como en este ejemplo Ruby:
my_ruby_code.rb:13:in `/': divided by 0 (ZeroDivisionError)
from my_ruby_code.rb:13
Es muy sencillo y rápido - acabo de ir a la línea número 13 y corregir el error.
Por el contrario, Erlang se limita a decir algo así como:
** 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
No hay números de línea a la vista.
Y si tengo dos líneas como
X = Param1,
Y = Param2,
en 'my_fun', ¿cómo se puede entender en qué línea se encuentra el problema?
Además, he intentado cambiar a Emacs + Elang-mode desde Vim, pero la única ventaja que tengo hasta ahora es la capacidad de recorrer los errores de compilación dentro de Emacs (C-k `).
Por lo tanto, el proceso de escribir código y buscar errores lógicos simples como "no coincidencia del lado derecho" parece ser un poco engorroso.
He tratado de agregar muchas líneas "io: format" en el código, pero es un trabajo adicional que lleva tiempo.
También he intentado usar distel, pero se requieren 10 pasos para simplemente abrir un depurador una vez.
Preguntas:
- ¿Cuál es la forma más simple y directa para depurar código Erlang?
- ¿El modo erlang de Emacs tiene algo superior en términos de desarrollo de Erlang en comparación con Vim?
- ¿Qué ciclo de desarrollo 'write-compile-debug' prefiere? ¿Dejas Emacs para compilar y ejecutar el código en la terminal? ¿Cómo busca errores en su código de Erlang?
Seleccione la respuesta que resolvió su pregunta, si corresponde. –