GDB 13 ๋””๋ฒ„๊ฑฐ ๋ฆด๋ฆฌ์Šค

GDB 13.1 ๋””๋ฒ„๊ฑฐ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(13.x ์‹œ๋ฆฌ์ฆˆ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค, 13.0 ๋ธŒ๋žœ์น˜๊ฐ€ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค). GDB๋Š” ๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์–ด(i2, amd386)์—์„œ ๊ด‘๋ฒ”์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(Ada, C, C++, D, Fortran, Go, Objective-C, Modula-64, Pascal, Rust ๋“ฑ)์— ๋Œ€ํ•œ ์†Œ์Šค ๋ ˆ๋ฒจ ๋””๋ฒ„๊น…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. , ARM, Power, Sparc, RISC-V ๋“ฑ) ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ(GNU/Linux, *BSD, Unix, Windows, macOS).

์ฃผ์š” ๊ฐœ์„  ์‚ฌํ•ญ:

  • GNU/Linux/LoongArch ๋ฐ GNU/Linux/CSKY ์•„ํ‚คํ…์ฒ˜์—์„œ ๋””๋ฒ„๊ฑฐ ๋ฐ GDBserver ์‹คํ–‰์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„๋™๊ธฐ ๋ชจ๋“œ(async)์—์„œ Windows ํ”Œ๋žซํผ ์ž‘์—…์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • FreeBSD ํ”Œ๋žซํผ์—์„œ๋Š” ARM ๋ฐ AArch64 ์•„ํ‚คํ…์ฒ˜์— TLS(Thread Local Storage) ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ AArch64 ์•„ํ‚คํ…์ฒ˜์—๋Š” ํ•˜๋“œ์›จ์–ด ์ค‘๋‹จ์ (watchpoint)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • LoongArch ์‹œ์Šคํ…œ์˜ GNU/Linux ํ™˜๊ฒฝ์— ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ณ„์‚ฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ๋ช…๋ น "maintenance setignore-prologue-end-flag|libopcodes-styling" ๋ฐ "maintenance print frame-id"์™€ ๋””์Šค์–ด์…ˆ๋ธ”๋œ ์ถœ๋ ฅ ์Šคํƒ€์ผ์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋ช…๋ น(set style disassembler *)์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • XNUMX๋ฐ”์ดํŠธ ๊ทธ๋ฃน์˜ ์ด์ง„ ๊ฐ’ ํ‘œ์‹œ๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด "set print nibbles [on|off]" ๋ฐ "show print nibbles" ๋ช…๋ น์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Python API๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„ํ•ด ์ง€์นจ์„ ์œ„ํ•œ API๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๊ณ , gdb.BreakpointLocation ์œ ํ˜•์ด ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ, gdb.format_address, gdb.current_์–ธ์–ด ๋ฐ gdb.print_options ํ•จ์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • GDB/MI ๊ด€๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ GDB 14์—์„œ ์ œ๊ฑฐ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
  • ELF ํŒŒ์ผ์—์„œ zstd ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์••์ถ•๋œ ๋””๋ฒ„๊ทธ ์„น์…˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ๋‚ด์žฅ ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค: $_inferior_thread_count, $_hit_bpnum, $_hit_locno.
  • 'disassemble /r' ๋ฐ 'record Instruction-history /r' ๋ช…๋ น์˜ ์ถœ๋ ฅ ํ˜•์‹์ด objdump์˜ ์ถœ๋ ฅ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ํ˜•์‹์„ ๋˜๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด "/b" ๋ชจ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • TUI(ํ…์ŠคํŠธ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค)์—์„œ๋Š” ํ˜„์žฌ ์œ„์น˜ ํ‘œ์‹œ๊ธฐ๋กœ ๊ฐ•์กฐ ํ‘œ์‹œ๋œ ์†Œ์Šค ๋ฐ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ์˜ ์Šคํƒ€์ผ์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ๋ช…๋ น์„ ๋ฌธ์„œํ™”ํ•˜๊ธฐ ์œ„ํ•ด "document" ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ARMv8.5 MTE(MemTag, Memory Tagged 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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€