GDB 14.1์ด ์ถ์๋์์ต๋๋ค(14.x ์๋ฆฌ์ฆ์ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค์ด๋ฉฐ, ๊ฐ๋ฐ์๋ 14.0 ๋ธ๋์น๊ฐ ์ฌ์ฉ๋์์ต๋๋ค). GDB๋ ๋ค์ํ ํ๋์จ์ด(i386, amd64, ARM, Power, Sparc, RISC-V ๋ฑ) ๋ฐ ์ํํธ์จ์ด ํ๋ซํผ(GNU/)์์ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust ๋ฑ)์ ๋ํ ์์ค ์ฝ๋ ์์ค ๋๋ฒ๊น ์ ์ง์ํฉ๋๋ค.Linux, *BSD, ์ ๋์ค, Windows, macOS).
์ฃผ์ ๊ฐ์ ์ฌํญ:
- ์ฝ๋ ๊ธฐ๋ฐ์ด C++17 ํ์ค์ ์ฌ์ฉํ๋๋ก ๋ง์ด๊ทธ๋ ์ด์ ๋์์ต๋๋ค. ์ด์ GDB๋ฅผ ๋น๋ํ๋ ค๋ฉด C++17(์ต์ GCC 9)์ ์ง์ํ๋ ์ปดํ์ผ๋ฌ๊ฐ ํ์ํฉ๋๋ค.
- ์ฃผ์ ๊ธฐ๋ฅ์ ๋ํ ์ ๋ณด๋ฅผ ์์ธ์ ์ถ๊ฐํ์ฌ ์ผ๋ถ ๋๊ท๋ชจ ์คํ ํ์ผ๊ณผ ํจ๊ป ์ฌ์ฉํ ๋ ๋ ๋น ๋ฅธ ์์์ ํ์ฉํฉ๋๋ค.
- AIX 4.x, 5.x, 6.x์ ๋ํ ์ง์์ด ์ค๋จ๋์์ต๋๋ค(AIX์ ์ต์ ์ง์ ๋ฒ์ ์ 7.1์ ๋๋ค).
- DAP(๋๋ฒ๊ฑฐ ์ด๋ํฐ ํ๋กํ ์ฝ)์ ๋ํ ์ด๊ธฐ ๋ด์ฅ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- NO_COLOR ํ๊ฒฝ ๋ณ์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- 64๋นํธ๋ณด๋ค ํฐ ์ ์ ์ ํ์ ๋ํ ์ด๊ธฐ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋๋ฒ๊น ํ ๋ ๊ฐ๋ณ ๋๋ฒ๊ทธ ๊ฐ์ฒด์ ์ฒจ๋ถ๋ ์ค๋จ์ ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์ ธ์์ ๋ช ๋ น์ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ "$_shell" ํจ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- Python API๊ฐ ๊ฐ์ ๋์์ต๋๋ค.
- gdb.Thread, gdb.unwinder.FrameId ๋ฐ gdb.ValuePrinter ํด๋์ค๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- gdb.Inferior.arguments, gdb.Inferior.main_name, gdb.Breakpoint.inferior, gdb.Progspace.symbol_file, gdb.Progspace.executable_filename ์์ฑ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- gdb.execute_mi(COMMAND, [ARG]โฆ), gdb.block_signals() ํจ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- gdb.Frame.static_link, gdb.Inferior 'clear_env', 'set_env', 'unset_env', gdb.Type 'is_array_like', 'is_string_like', gdb.Value 'assign', gdb.Value 'to_array', gdb.Progspace 'objfile_for_address', gdb.LazyString __str__ ๋ฉ์๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent, gdb.NewProgspaceEvent, gdb.FreeProgspaceEvent ์ด๋ฒคํธ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ์๊ฒฉ ๋๋ฒ๊น ๋ชฉ์ ์ผ๋ก ๊ฐ๋ณ ๊ธฐ๋ฅ์ ํ์ฑํ ๋ฐ ๋นํ์ฑํํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค.
- AArch64 ์ํคํ ์ฒ ์ง์์ด ๊ฐ์ ๋์์ต๋๋ค. SME(Scalable Matrix Extension) ๋ฐ SME2 ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Ada ์ธ์ด์ Ada 2022 ์ฌ์์ ๋ํ ์ง์์ด ๊ฐ์ ๋์์ต๋๋ค.
- 'list' ๋ช ๋ น์ ์ด์ ํ์ฌ ์คํ ํ๋ ์์์ ์คํ ์ง์ ์ ์์น๋ฅผ โโ์ถ๋ ฅํ๋ '.' ์ธ์๋ฅผ ์ง์ํฉ๋๋ค.
- '%V' ํ์ ์ง์ ์๊ฐ printf ๋ฐ dprintf ๋ช ๋ น์ ์ถ๊ฐ๋์์ต๋๋ค.
- printf ๋ช ๋ น์์ ๋๋ฒ๊ทธ ๊ฐ์ฒด๋ก๋ถํฐ ์ถ์ถ๋๋ ๋ฌธ์์ด์ ํฌ๊ธฐ๋ 'max-value-size' ์ค์ ๊ฐ์ ์ํด ์ ํ๋ฉ๋๋ค.
- 'debug-file-directory' ๋งค๊ฐ๋ณ์์ ๋ํ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๊ธฐ ์ํด ๋น๋ ์ต์ "--additional-debug-dirs=PATH"๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ํ๋ก๊ทธ๋จ์ ์ง์ ์ ์ ๊ฐ๋ฆฌํค๋ ๋ฉ์ธ ์ฌ๋ณผ์ ์ถ์ถํ๋ ์๋ก์ด ๋ช ๋ น "info main"์ ์ถ๊ฐํ์ต๋๋ค.
- ์๋ก์ด ๋ช
๋ น์ด ์ถ๊ฐ๋์์ต๋๋ค:
- "๋๋ฒ๊ทธ ์ค๋จ์ ์ค์ ์ผ๊ธฐ|๋๊ธฐ"
- "tui ๋ง์ฐ์ค ์ด๋ฒคํธ ์ค์ [์ผ๊ธฐ|๋๊ธฐ]"
- "ํญ์ ์ฝ๊ธฐ CTF ์ผ๊ธฐ|๋๊ธฐ"
- "์ ์ง ๊ด๋ฆฌ ์ธ์ ๊ธฐ๋ก-์ง์นจ [N]"
- "ํ๋ ์ ์ธ์์ธ๋ ์ ์ง ๊ด๋ฆฌ ์ ๋ณด"
- "์ธ๋ฑ์ค ์บ์ ์ ์ง ๊ด๋ฆฌ ๋๊ธฐ"
์ถ์ฒ : opennet.ru
