Se presenta el lanzamiento del depurador GDB 16.1 (primer lanzamiento de la serie 16.x, la rama 16.0 se utilizó para el desarrollo). GDB admite la depuración a nivel de código fuente para una amplia variedad de lenguajes de programación (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust, etc.) en diversas plataformas de hardware (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch, etc.) y software (GNU/Linux, *BSD, Unix, Windows, macOS).
Mejoras más notables:
- Para entornos Linux en sistemas con arquitectura LoongArch, se ha implementado soporte para grabación y reproducción (record/replay).
- Para los punteros etiquetados, donde una parte de los bits se utiliza para almacenar datos adicionales, se ha habilitado el soporte para puntos de ruptura que se activan al cambiar los datos (watchpoint).
- En sistemas con arquitectura AArch64, se ha implementado soporte para depurar el mecanismo de protección MTE (Memory Tagging Extension). MTE permite asociar etiquetas a áreas de memoria y organizar la verificación de la validez del uso de punteros para bloquear la explotación de vulnerabilidades causadas por un manejo incorrecto de la memoria.
- Se ha añadido un script bash gstack que utiliza GDB para mostrar trazas de pila de procesos en ejecución.
- Para los puntos de interrupción en estado de espera (pending), las palabras clave ‘thread’ y ‘task’ ahora se analizan al crear el punto de interrupción, en lugar de después de salir del estado de espera.
- Se asegura la inserción de puntos de interrupción vinculados a hilos solo en la sección del programa donde se está ejecutando el hilo requerido.
- Se han ampliado las capacidades de trazado en procesadores Intel: al depurar paso a paso, así como en los comandos «record instruction-history» y «record function-call-history», se ha implementado la salida de eventos asíncronos y datos guardados al usar la instrucción ptwrite.
- En la API de Python se han añadido: módulo gdb.missing_objfile, evento gdb.tui_enabled, atributo gdb.Symbol.is_artificial y función gdb.record.clear.
- Se han ampliado las capacidades del protocolo DAP (Debugger Adapter Protocol), relacionadas con el manejo de solicitudes «scopes», «launch» y «attach».
- Al protocolo de depuración remota se ha añadido soporte para paquetes «vFile:stat» y «x addr,length».
- Se ha descontinuado el soporte para QNX Neutrino, Nios II e Intel MPX.
Fuente: opennet.ru
