GDB 16.1 發布(這是 16.x 系列的首個版本,開發基於 16.0 分支)。 GDB 支援對多種程式語言(Ada、C、C++、D、Fortran、Go、Objective-C、Modula-2、Pascal、Rust 等)在各種硬體(i386、amd64、ARM、Power、Sparc、RISC-V、LoongArch 等)和軟體平台(GNU/Linux)上進行原始程式碼。Linux,*BSD,Unix, Windows, macOS).
最顯著的改進:
- 為 Linux- 採用 LoongArch 架構的系統環境已實現對錄製和重新執行(錄製/回放)的支援。
- 對於標記指針,其中一些位元用於儲存附加數據,實現了對數據更改時觸發的斷點(觀察點)的支援。
- 在AArch64架構的系統上,實作了MTE(Memory Tagging Extension)保護機制的調試支援。 MTE 可以將標籤綁定到記憶體中的區域,並組織對指標正確使用的驗證,以阻止對因記憶體使用不當而導致的漏洞的利用。
- 新增了 bash 腳本 gstack,它使用 GDB 列印正在運行的進程的堆疊追蹤。
- 對於掛起的斷點,現在會在建立斷點時解析「thread」和「task」關鍵字,而不是在退出暫停狀態之後。
- 確保與執行緒綁定的斷點僅插入到執行所需執行緒的程式區域。
- 英特爾處理器上的追蹤功能得到了擴展:在逐步偵錯期間,以及在「記錄指令歷史記錄」和「記錄函數呼叫歷史記錄」命令中,非同步事件的輸出和使用ptwrite指令被執行。
- 新增至 Python API:gdb.missing_objfile 模組、gdb.tui_enabled 事件、gdb.Symbol.is_artificial 屬性和 gdb.record.clear 函數。
- 與處理「範圍」、「啟動」和「附加」請求相關的 DAP(偵錯器適配器協定)協定的功能已擴展。
- 在遠端偵錯協定中新增了對「vFile:stat」和「x addr,length」套件的支援。
- 對 QNX Neutrino、Nios II 和 Intel MPX 的支援已停止。
來源: opennet.ru
