ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π»ΠΈΠ· ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° GDB 18.1 (ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ ΡΠ΅ΡΠΈΠΈ 18.x, Π²Π΅ΡΠΊΠ° 18.0 ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ). GDB ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ² Π΄Π»Ρ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΡΠΏΠ΅ΠΊΡΡΠ° ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (C, C++, D, Go, Objective-C, Fortran, OpenCL C, Pascal, Rust, Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ, Modula-2 ΠΈ Ada) Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch ΠΈ Ρ.Π΄.) ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ (GNU/Linux, *BSD, Unix, Windows, macOS).
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌ GNU/Linux/MicroBlaze (microblazeel-*linux*) ΠΈ AArch64 MinGW (aarch64-*-mingw*). ΠΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ 32-ΡΠ°Π·ΡΡΠ΄Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° s390 (s390-*).
- ΠΠ»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Windows ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅ΠΆΠΈΠΌΠ° Β«non-stopΒ» (Π΄Π»Ρ Windows 10 ΠΈ Π½ΠΎΠ²Π΅Π΅), Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«set scheduler-locking onΒ» ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ TLS (Thread Local Storage). ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π² Windows Terminal ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° 24-Π±ΠΈΡΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ², emoji ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ UTF-8. Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ CLI, TUI, MI ΠΈ DAP Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΡΠ° Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΠΏΡΡΡΡ (Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ C:/proj/src/main.c Π²ΠΌΠ΅ΡΡΠΎ C:/proj/src\main.c)
- ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΡΠΈΠΏΠΎΠ² Π² ΠΈΠ½Π΄Π΅ΠΊΡ .gdb_index ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π²ΡΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠΈΠΏΠΎΠ².
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«info localsΒ» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Β«shadowedΒ» Π΄Π»Ρ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°Π΅ΠΌΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Β«set print shadowed on|offΒ».
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ Β«set argsΒ», Β«runΒ», Β«startΒ» ΠΈ Β«startiΒ» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Π·Π°ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ Π² ΠΊΠ°Π²ΡΡΠΊΠΈ.
- Π GDB ΠΈ gdbserver Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ Β«βno-escape-argsΒ» Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°Ρ .
- ΠΠ»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ AArch64 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅Π³ΠΈΡΡΡΠ° FPMR (Floating Point Mode Register).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ core-ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Intel AMX.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ libipt 2.2.
- ΠΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΊΠΎΡΠΎΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ.
- Π ΠΊΠΎΠΌΠ°Π½Π΄Ρ help Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Β«essentialΒ» Ρ ΠΎΠ±Π·ΠΎΡΠΎΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π½ΠΎΠ²ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ GDB.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
- set/show/unset local-environment β Π°Π½Π°Π»ΠΎΠ³ Β«set/show/unset environmentΒ», Π²Π»ΠΈΡΡΡΠΈΠΉ Π½Π° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΡΠ°ΠΌΠΈΠΌ GDB (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· shell ΠΈΠ»ΠΈ pipe).
- save history, save skip, save user β ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π² ΡΠ°ΠΉΠ» ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ skip ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
- info proc environ β ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
- set/show progress-bars enabled β ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·ΠΎΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ°.
- delete skip, enable skip, disable skip β ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ skip delete/enable/disable.
- set/show debug gnu-ifunc ΠΈ set/show debug ctf.
- Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠ° DWP (DWARF Package File), ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ stabs ΠΈ mdebug. ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ CTF (Common Trace Format).
- Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² Windows ABI GNU (Π΄Π»Ρ ΠΊΠΎΠ΄Π°, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ MinGW) ΠΈ MSVC (Π΄Π»Ρ ΠΊΠΎΠ΄Π°, ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ MSVC ΠΈ Clang). ΠΠ»Ρ Π²ΡΠ±ΠΎΡΠ° Windows ABI Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«set osabiΒ» ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Β«Windows-GNUΒ» ΠΈ Β«Windows-MSVCΒ». ΠΡΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Windows Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Β«βtargetΒ» (βtarget=x86_64-pc-windows-msvc ΠΈΠ»ΠΈ βtarget=x86_64-w64-mingw32).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
