Se presenta la versión del depurador GDB 15.1 (primer lanzamiento de la serie 15.x, la rama 15.0 se utilizó para el desarrollo). GDB admite la depuración a nivel de código fuente para una amplia gama 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, etc.) y software (GNU/Linux, *BSD, Unix, Windows, macOS).
Mejoras clave:
- Ahora se requiere un compilador que soporte C++17 (al menos GCC 9) para compilar GDB y GDBserver.
- Se han mejorado las funciones del API de Python. Se han añadido las funciones gdb.notify_mi, gdb.missing_debug.register_handler y gdb.interrupt, la clase gdb.missing_debug.MissingDebugInfo, el módulo db.missing_debug, los atributos gdb.Value.bytes y gdb.InferiorThread.ptid_string, y las constantes gdb.SYMBOL_TYPE_DOMAIN, gdb.SYMBOL_FUNCTION_DOMAIN y gdb.SEARCH_*_DOMAIN. Se ha implementado la posibilidad de añadir atributos personalizados en los objetos gdb.Inferior y gdb.InferiorThread.
- Se ha continuado la implementación del protocolo DAP (Protocolo de Adaptador de Depuración). Se ha añadido el comando «set debug dap-log-level» para gestionar el registro de logs para DAP. Se ha añadido soporte para la solicitud «cancel» y la posibilidad de generar el evento «process».
- Se ha añadido soporte para los paquetes QThreadOptions y qIsAddressTagged en el protocolo de depuración remota, así como se ha implementado el comando «set/show remote thread-options-packet».
- En GDBserver, se ha interrumpido el soporte para las opciones «—remote-debug» y «—event-loop-debug», así como para los comandos ‘monitor set remote-debug’ y ‘monitor set event-loop-debug’. En su lugar, en la opción «—debug» se ha implementado la capacidad de enviar una lista de componentes para depuración separados por comas (all, threads, event-loop y remote). De manera similar, la capacidad de especificar componentes se ha implementado en el comando ‘monitor set debug’.
- Se ha añadido información sobre la función main al índice, lo que permite acelerar el inicio al utilizarse con algunos archivos ejecutables grandes.
- Se han declarado obsoletas las instrucciones MPX «show/set mpx bound», cuyo soporte fue descontinuado por Intel en 2019.
- Se han añadido nuevos comandos:
- «set/show direct-call-timeout»
- «set/show indirect-call-timeout»
- «set/show unwind-on-timeout on|off»
- «set/show unwind-on-signal on|off»
- Se ha añadido soporte para la optimización del almacenamiento de áreas vacías en los archivos core generados en los comandos «gcore» y «generate-core-file».
Fuente: opennet.ru
