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

๋„์ž… ๋””๋ฒ„๊ฑฐ ๋ฆด๋ฆฌ์Šค GDB 8.3, ๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์–ด(i386, amd64, ARM, Power, Sparc, RISC-V)์—์„œ ๊ด‘๋ฒ”์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(Ada, C, C++, Objective-C, Pascal, Go ๋“ฑ)์— ๋Œ€ํ•œ ์†Œ์Šค ๋ ˆ๋ฒจ ๋””๋ฒ„๊น…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ) ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ(GNU/Linux, *BSD, Unix, Windows, macOS).

์—ด์‡  ๊ฐœ๋Ÿ‰:

  • ์ด์ œ CLI ๋ฐ TUI ์ธํ„ฐํŽ˜์ด์Šค์— ํ„ฐ๋ฏธ๋„ ์Šคํƒ€์ผ์„ ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค("set style" ๋ช…๋ น์ด ์ถ”๊ฐ€๋จ). GNU ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์†Œ์Šค ํ…์ŠคํŠธ ๊ฐ•์กฐ๊ฐ€ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
  • C++ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ GDB ์ œ์–ด ํ”„๋กœ์„ธ์Šค๋กœ ์ปดํŒŒ์ผํ•˜๊ณ  ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•œ ์‹คํ—˜์  ์ง€์› ๊ตฌํ˜„
    (ํ•˜์œ„์˜). ์ž‘๋™ํ•˜๋ ค๋ฉด ์ตœ์†Œํ•œ libcp7.1.so๋กœ ์ปดํŒŒ์ผ๋œ GCC 1b ๋ฒ„์ „์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • IPv6 ์ง€์›์ด GDB ๋ฐ GDBserver์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. IPv6 ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด โ€œ[ADDRESS]:PORTโ€ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
  • RISC-V ๋Œ€์ƒ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ XML ํ˜•์‹์œผ๋กœ ๋Œ€์ƒ์„ ์„ค๋ช…ํ•˜๋Š” ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋Œ€์ƒ ์„ค๋ช… ํ˜•์‹);
  • FreeBSD ํ”Œ๋žซํผ์€ ์ฐจ๋‹จ ์ง€์  ์„ค์น˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    (์บ์น˜ํฌ์ธํŠธ) ๋‹ค์–‘ํ•œ ABI์— ํŠน์ •ํ•œ ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ(์˜ˆ: 'kevent'์˜ ๊ฒฝ์šฐ ์ด์ „ ABI์— ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„์นญ 'freebsd11_kevent'๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ)

  • Unix ์†Œ์ผ“(Unix ๋„๋ฉ”์ธ ์†Œ์ผ“)์— ๋Œ€ํ•œ ์ง€์›์ด "๋Œ€์ƒ ์›๊ฒฉ" ๋ช…๋ น์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค์—์„œ ์—ด๋ฆฐ ๋ชจ๋“  ํŒŒ์ผ์„ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค("info proc files" ๋ช…๋ น).
  • ๋™์ผํ•œ ์‹คํ–‰ ํŒŒ์ผ์˜ ํ›„์† ๋กœ๋“œ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด DWARF ๊ธฐํ˜ธ ์ธ๋ฑ์Šค๋ฅผ ๋””์Šคํฌ์— ์ž๋™์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • PowerPC GNU/Linux ํ”Œ๋žซํผ์šฉ GDBserver์— ๋Œ€ํ•œ PPR, DSCR, TAR, EBB/PMU ๋ฐ HTM ๋ ˆ์ง€์Šคํ„ฐ ์•ก์„ธ์Šค์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "๋””๋ฒ„๊ทธ ์ปดํŒŒ์ผ-cplus-์œ ํ˜• ์„ค์ •/ํ‘œ์‹œ"๋ผ๋Š” ์ƒˆ ๋ช…๋ น์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ
    C++ ์œ ํ˜• ๋ณ€ํ™˜์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ๊ณผ ๊ฑด๋„ˆ๋›ด ํŒŒ์ผ ๋ฐ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ "๋””๋ฒ„๊ทธ ๊ฑด๋„ˆ๋›ฐ๊ธฐ ์„ค์ •/ํ‘œ์‹œ"

  • ์Šคํƒ ํ”„๋ ˆ์ž„ ๋ฐ ์Šค๋ ˆ๋“œ์— ๋ช…๋ น์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ "frame apply COMMAND", "taas COMMAND", "faas COMMAND", "tfaas COMMAND" ๋ช…๋ น์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "ํ”„๋ ˆ์ž„", "์„ ํƒ ํ”„๋ ˆ์ž„", "์ •๋ณด ํ”„๋ ˆ์ž„" ๋ช…๋ น์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    โ€” "์ •๋ณด ํ•จ์ˆ˜", "์ •๋ณด ์œ ํ˜•", "์ •๋ณด ๋ณ€์ˆ˜", "์ •๋ณด ์Šค๋ ˆ๋“œ", "์ •๋ณด ํ”„๋กœ์„ธ์Šค";

  • ๋ฐฐ์น˜ ๋ชจ๋“œ์—์„œ ์‹คํ–‰ํ•  ๋•Œ GDB๋Š” ์ด์ œ ๋งˆ์ง€๋ง‰ ๋ช…๋ น์ด ์‹คํŒจํ•˜๋ฉด ์˜ค๋ฅ˜ ์ฝ”๋“œ 1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • GCC์—์„œ ์ œ๊ณตํ•˜๋Š” ์ •์˜๋˜์ง€ ์•Š์€ Behavior Sanitizer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GDB๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • RISC-V GNU/Linux(riscv*-*-linux*) ๋ฐ RISC-V FreeBSD(riscv*-*-freebsd*) ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ •(๋™์ผ ์‹œ์Šคํ…œ์—์„œ ๋””๋ฒ„๊น…์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ตฌ์„ฑ)์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋œ ๋Œ€์ƒ ๊ตฌ์„ฑ: CSKY ELF(csky*-*-elf), CSKY GNU/Linux(csky*-*-linux), NXP S12Z ELF(s12z-*-elf), OpenRISC GNU/Linux(or1k *-*-linux) *), RISC-V GNU/Linux(riscv*-*-linux*) ๋ฐ RISC-V FreeBSD(riscv*-*-freebsd*);
  • Windows์—์„œ ๋™์ผํ•œ ์‹œ์Šคํ…œ์„ ๋””๋ฒ„๊น…ํ•˜๋ ค๋ฉด ์ด์ œ Windows XP ๋˜๋Š” ์ตœ์‹  ๋ฒ„์ „์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด์ œ Python API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Python 2.6 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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