Se ha presentado la versión del depurador GDB 13.1 (la primera versión de la serie 13.x, se utilizó la rama 13.0 para el desarrollo). GDB admite la depuración a nivel de fuente para una amplia gama de lenguajes de programación (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust, etc.) en varios hardware (i386, amd64 , ARM, Power, Sparc, RISC-V, etc.) y plataformas de software (GNU/Linux, *BSD, Unix, Windows, macOS).
Mejoras clave:
- Se agregó soporte para ejecutar el depurador y el servidor GDB en arquitecturas GNU/Linux/LoongArch y GNU/Linux/CSKY.
- Se ha implementado soporte para trabajar en la plataforma Windows en modo asíncrono (async).
- En la plataforma FreeBSD, se agregó soporte para variables TLS (Thread Local Storage) para las arquitecturas ARM y AArch64, y se proporcionó la capacidad de usar puntos de interrupción de hardware (watchpoint) para la arquitectura AArch64.
- En el entorno GNU/Linux en los sistemas LoongArch, se ha agregado soporte para cálculos de punto flotante.
- Se implementaron nuevos comandos "mantenimiento set ignore-prologue-end-flag|libopcodes-styling" y "mantenimiento print frame-id", así como comandos para controlar el estilo de la salida desensamblada (establecer desensamblador de estilo *).
- Se agregaron los comandos "establecer nibbles de impresión [activado|desactivado]" y "mostrar nibbles de impresión" para controlar la visualización de valores binarios en grupos de cuatro bytes.
- Se han realizado mejoras en la API de Python. Se agregó una API para instrucciones de desmontaje, se implementó el tipo gdb.BreakpointLocation y se agregaron las funciones gdb.format_address, gdb.current_language y gdb.print_options.
- La primera versión de la interfaz de administración GDB/MI ha quedado obsoleta y se eliminará en GDB 14.
- Se agregó soporte para secciones de depuración comprimidas usando el algoritmo zstd en archivos ELF.
- Se agregaron nuevas variables integradas: $_inferior_thread_count, $_hit_bpnum, $_hit_locno.
- El formato de salida de los comandos 'desensamblar /r' y 'recordar historial de instrucciones /r' se ha ajustado para que coincida con la salida de objdump. Para devolver el formato anterior, se ha agregado el modo “/b”.
- En la TUI (Interfaz de usuario de texto), el estilo del código fuente y ensamblador resaltado por el indicador de posición actual está deshabilitado.
- Es posible utilizar el comando "documentar" para documentar los comandos del usuario.
- Se agregó la capacidad de crear volcados con datos de etiquetas de memoria utilizados cuando se usa el mecanismo ARMv8.5 MTE (MemTag, Memory Tagging Extension), que le permite vincular etiquetas a cada operación de asignación de memoria y organizar una verificación del puntero al acceder a la memoria, que debe ser asociado con la etiqueta correcta.
- El modo de compatibilidad DBX ha sido descontinuado.
- Se ha descontinuado el soporte para compilar usando Python 2.
- Se han eliminado los comandos “set debug aix-solib on|off”, “show debug aix-solib”, “set debug solib-frv on|off” y “show debug solib-frv”, y los comandos “set/show debug” debería usarse en lugar de solib."
Fuente: opennet.ru