รีลีสดีบักเกอร์ GDB 13

มีการนำเสนอการเปิดตัวดีบักเกอร์ GDB 13.1 แล้ว (รุ่นแรกของซีรีส์ 13.x, สาขา 13.0 ถูกใช้เพื่อการพัฒนา) GDB รองรับการดีบักระดับซอร์สสำหรับภาษาการเขียนโปรแกรมที่หลากหลาย (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust ฯลฯ) บนฮาร์ดแวร์ต่างๆ (i386, amd64 , ARM, Power, Sparc, RISC-V ฯลฯ) และแพลตฟอร์มซอฟต์แวร์ (GNU/Linux, *BSD, Unix, Windows, macOS)

การปรับปรุงที่สำคัญ:

  • เพิ่มการรองรับสำหรับการรันดีบักเกอร์และ GDBserver บนสถาปัตยกรรม GNU/Linux/LoongArch และ GNU/Linux/CSKY
  • มีการใช้งานการสนับสนุนการทำงานบนแพลตฟอร์ม Windows ในโหมดอะซิงโครนัส (async)
  • บนแพลตฟอร์ม FreeBSD มีการเพิ่มการรองรับตัวแปร TLS (Thread Local Storage) สำหรับสถาปัตยกรรม ARM และ AArch64 และให้ความสามารถในการใช้จุดพักฮาร์ดแวร์ (จุดเฝ้าระวัง) สำหรับสถาปัตยกรรม AArch64
  • ในสภาพแวดล้อม GNU/Linux บนระบบ LoongArch ได้เพิ่มการรองรับการคำนวณจุดลอยตัวแล้ว
  • นำคำสั่งใหม่ไปใช้ "maintenance setละเว้น-prologue-end-flag|libopcodes-styling" และ "maintenance print frame-id" รวมถึงคำสั่งเพื่อควบคุมรูปแบบของเอาต์พุตที่แยกชิ้นส่วน (set style disassembler *)
  • เพิ่มคำสั่ง "set print nibbles [on|off]" และ "show print nibbles" เพื่อควบคุมการแสดงค่าไบนารี่ในกลุ่มสี่ไบต์
  • มีการปรับปรุง Python API มีการเพิ่ม API สำหรับคำแนะนำในการแยกส่วน ประเภท gdb.BreakpointLocation และเพิ่มฟังก์ชัน gdb.format_address, gdb.current_language และ gdb.print_options
  • อินเทอร์เฟซการจัดการ GDB/MI เวอร์ชันแรกเลิกใช้แล้ว และจะถูกลบออกใน GDB 14
  • เพิ่มการรองรับส่วนการแก้ไขข้อบกพร่องที่บีบอัดโดยใช้อัลกอริทึม zstd ในไฟล์ ELF
  • เพิ่มตัวแปรบิวท์อินใหม่: $_inferior_thread_count, $_hit_bpnum, $_hit_locno
  • รูปแบบเอาต์พุตของคำสั่ง 'disassemble /r' และ 'record Instruction-history /r' ได้รับการปรับให้ตรงกับเอาต์พุตของ objdump หากต้องการคืนรูปแบบเก่า เราได้เพิ่มโหมด "/b" แล้ว
  • ใน TUI (Text User Interface) การจัดสไตล์ของซอร์สโค้ดและแอสเซมบลีโค้ดที่ไฮไลต์โดยตัวบ่งชี้ตำแหน่งปัจจุบันจะถูกปิดใช้งาน
  • สามารถใช้คำสั่ง “document” เพื่อจัดทำเอกสารคำสั่งของผู้ใช้ได้
  • เพิ่มความสามารถในการสร้างดัมพ์ด้วยข้อมูลแท็กหน่วยความจำที่ใช้เมื่อใช้กลไก ARMv8.5 MTE (MemTag, Memory Tagging Extension) ซึ่งช่วยให้คุณสามารถผูกแท็กกับการดำเนินการจัดสรรหน่วยความจำแต่ละครั้ง และจัดระเบียบการตรวจสอบตัวชี้เมื่อเข้าถึงหน่วยความจำ ซึ่งต้องเป็น เกี่ยวข้องกับแท็กที่ถูกต้อง
  • โหมดความเข้ากันได้ของ DBX ถูกยกเลิกแล้ว
  • การสนับสนุนการสร้างโดยใช้ Python 2 ถูกยกเลิกแล้ว
  • คำสั่ง “set debug aix-solib on|off”, “show debug aix-solib”, “set debug solib-frv on|off” และ “show debug solib-frv” ได้ถูกลบออกไปแล้ว และคำสั่ง “set/show” debug” ควรใช้แทน solib"

ที่มา: opennet.ru

เพิ่มความคิดเห็น