Reemplazo de Byebug por Debug 馃敟馃悰

by Juan V谩squez, 13 Sep 2021
ruby, thisweekinrails

Desde que conozco Ruby on Rails incluye la gema de Bye Bug 馃槬 claro, tiene m谩s de 7 a帽os que fue introducido al Gemfile de Ruby on Rails.

El Pull Request Depend on ruby/debug, replacing Byebug que nos brind贸 la informaci贸n.

Creo que la pregunta obligada es 驴Por qu茅 se remueve la gema de byebug?

  • Byebug y Zeitwerk no son totalmente compatibles. Eso s铆, eso no es un error de ninguna de las gemas, es una limitaci贸n t茅cnica.

  • En Ruby 3.1 est谩 previsto que la depuraci贸n se env铆e con debug.rb y este cambio alinea Rails con Ruby.

Dato hist贸rico

El 08 de Abril del 2014 se cre贸 el Pull Request para introducir Bye Bug en Ruby on Rails pero fue hasta el 11 de Abril del 2014 que se hizo merge.

Adios Bye Bug

驴Qu茅 es Bye Bug? En palabras de la misma gema.

Byebug es un depurador rico en funciones y f谩cil de usar para Ruby. Utiliza la API de TracePoint para el control de ejecuci贸n y la API del inspector de depuraci贸n para la navegaci贸n de la pila de llamadas. Por lo tanto, Byebug no depende de fuentes centrales internas. Byebug tambi茅n es r谩pido porque est谩 desarrollado como una extensi贸n de C y confiable porque es compatible con un conjunto de pruebas completo.

Saber m谩s de Byebug

Hola Debug

debug.rb proporciona funcionalidad de depuraci贸n a Ruby

Ventajas

  1. R谩pido: Sin penalizaci贸n de rendimiento en el modo sin pasos y sin puntos de interrupci贸n.
  2. Depuraci贸n remota: Admite la depuraci贸n remota de forma nativa. Socket de dominio UNIX TCP / IP Integraci贸n VSCode / DAP (VSCode rdbg Ruby Debugger - Visual Studio Marketplace)
  3. Extensible: La aplicaci贸n puede introducir soporte de depuraci贸n de varias formas: Por comando rdbg Al cargar bibliotecas con la opci贸n de l铆nea de comando -r Al llamar al m茅todo de Ruby expl铆citamente

Entre otras cosas

  1. Hilos de soporte (casi terminado) y ractores (TODO).
  2. Admite suspender e ingresar a la consola de depuraci贸n con Ctrl-C en la mayor parte del tiempo.
  3. Mostrar par谩metros en el comando backtrace.
  4. Admite depuraci贸n de grabaci贸n y respuesta.

Saber m谩s de Debug