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

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

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

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ๋””๋ฒ„๊น… ๊ธฐํ˜ธ๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์‹œ์ž‘ ์†๋„๊ฐ€ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.
  • C++ ํ…œํ”Œ๋ฆฟ์— ๋Œ€ํ•œ ์ง€์›์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„๋™๊ธฐ ๋ชจ๋“œ(async)์—์„œ FreeBSD ํ”Œ๋žซํผ ์ž‘์—…์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • GNU ์†Œ์Šค ํ•˜์ด๋ผ์ดํŠธ ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ๊ตฌ๋ฌธ ๊ฐ•์กฐ๋ฅผ ์œ„ํ•ด Pygments ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • "clone-inferior" ๋ช…๋ น์€ TTY, CMD ๋ฐ ARGS ์„ค์ •์ด ์›๋ž˜ ๋””๋ฒ„๊ทธ ๊ฐœ์ฒด(์—ด๋“ฑํ•จ)์—์„œ ์ƒˆ ๋””๋ฒ„๊ทธ ๊ฐœ์ฒด๋กœ ๋ณต์‚ฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ 'ํ™˜๊ฒฝ ์„ค์ •' ๋˜๋Š” 'ํ™˜๊ฒฝ ์„ค์ • ํ•ด์ œ' ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ƒˆ ๋””๋ฒ„๊ทธ ๊ฐœ์ฒด์— ๋ณต์‚ฌ๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • "print" ๋ช…๋ น์€ XNUMX์ง„์ˆ˜("/x")์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ๊ฐ’์˜ ํ˜•์‹์„ ์ง€์ •ํ•˜์—ฌ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž ์ธ์‡„๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • GNU/Linux/OpenRISC ์•„ํ‚คํ…์ฒ˜(๋˜๋Š”1k*-*-linux*)์—์„œ ๋””๋ฒ„๊ฑฐ ๋ฐ GDB์„œ๋ฒ„ ์‹คํ–‰์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. GNU/Linux/LoongArch ๋Œ€์ƒ ํ”Œ๋žซํผ(loongarch*-*-linux*)์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋””๋ฒ„๊น…์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. S+core ๋Œ€์ƒ ํ”Œ๋žซํผ(score-*-*)์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • GDB 12๋Š” Python 2๋ฅผ ์‚ฌ์šฉํ•œ ๋นŒ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์Šค๋กœ ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ GDB 13 DBX ํ˜ธํ™˜์„ฑ ๋ชจ๋“œ์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
  • GDB/MI ๊ด€๋ฆฌ API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด '-add-inferior' ๋ช…๋ น์„ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์ด ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ '--no-connection' ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ๋””๋ฒ„๊ทธ ๊ฐœ์ฒด์—์„œ ์—ฐ๊ฒฐ์„ ์ƒ์†ํ•˜๊ฑฐ๋‚˜ ์—ฐ๊ฒฐ ์—†์ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Python API๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Python์—์„œ GDB/MI ๋ช…๋ น์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ด๋ฒคํŠธ gdb.events.gdb_exiting ๋ฐ gdb.events.connection_removed, gdb.Architecture.integer_type() ํ•จ์ˆ˜, gdb.TargetConnection ๊ฐ์ฒด, gdb.Inferior.connection ์†์„ฑ, gdb.RemoteTargetConnection.send_packet ๋ฉ”์†Œ๋“œ ๋ฐ gdb.InferiorThread.details ์†์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. gdb.Type.is_scalar ๋ฐ gdb.Type.is_signed.

์ถœ์ฒ˜ : opennet.ru

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