Saltar al contenido

Depurar el core

Enganchar un depurador de verdad al proceso Rust: qué hace falta en cada plataforma, qué se puede inspeccionar, y cuándo un depurador gana a imprimir cosas.

Enganchar el depurador

El montaje básico es el de cualquier programa de Rust, con un matiz:

  • Compila en modo de depuración —que es lo que hace el modo de desarrollo— para tener símbolos e información de línea.
  • Y engancha al proceso del core, no al del frontend. En modo de desarrollo, tu herramienta de construcción del frontend corre en un proceso aparte, y el que quieres es el binario de Rust.
  • Configura tu editor para lanzar la aplicación bajo el depurador en vez de con la orden normal. La mayoría de los editores con soporte de Rust lo hacen con una configuración de unas líneas.

Y un aviso: si tu configuración lanza el frontend y el core juntos, puede que necesites separarlos — arrancar el frontend por su cuenta y lanzar el core bajo el depurador apuntando a él.

Qué se puede inspeccionar

La última fila merece conocerse porque ahorra mucho: en vez de imprimir novecientas líneas para ver la que falla, un punto de interrupción con condición para exactamente ahí.

Parar una aplicación con ventana

El detalle que hace esto distinto de depurar un programa de consola: mientras el depurador tiene parado el core, la ventana no responde.

Consecuencias prácticas:

  • La interfaz se queda congelada y el sistema puede marcarla como no responde. Es normal y no es un fallo.
  • Los eventos que llegan durante la pausa se encolan y se procesan de golpe al reanudar, lo que puede producir comportamientos que no verías corriendo normalmente.
  • Y los tiempos de espera siguen corriendo. Si tu código tiene un límite de cinco segundos y tú estás parado diez, al reanudar el límite ya venció — y estarás depurando un fallo que tú mismo provocaste.

El último es el que más confunde. Si vas a parar en código con límites de tiempo, súbelos temporalmente o desactívalos en depuración.

Depurador o registro

Los dos sirven, y para cosas distintas:

Y la combinación que funciona: registro permanente y moderado para saber qué pasó, depurador cuando ya sabes reproducirlo y quieres saber por qué.