ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ ΡΠ΅Π»ΠΈΠ·ΡΡ Π½Π° ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° GDB 12.1 (ΠΏΡΡΠ²ΠΈΡΡ Π²ΡΠΏΡΡΠΊ ΠΎΡ ΡΠ΅ΡΠΈΡ 12.x, ΠΊΠ»ΠΎΠ½ 12.0 Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°). GDB ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡΠ»Π°Π΄ΠΊΠ° Π½Π° Π½ΠΈΠ²ΠΎ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΡΠ΅ΠΊΡΡ Π·Π° ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡΠΈ (Ada, C, C++, Objective-C, Pascal, Go, Rust ΠΈ Ρ.Π½.) Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ (i386, amd64, ARM, Power, Sparc, RISC-V ΠΈ Ρ.Π½.) ΠΈ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ (GNU/Linux, *BSD, Unix, Windows, macOS).
ΠΠ»ΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ:
- ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΎΡΠ»Π°Π΄ΡΡΠ½ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΡΠΊΠΎΡΡΠ²Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ C++.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° FreeBSD Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ (async).
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° GNU Source Highlight ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Pygments Π·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΡΠ²Π°Π½Π΅.
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«clone-inferiorΒ» Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ TTY, CMD ΠΈ ARGS ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ ΠΎΠ±Π΅ΠΊΡ Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΠ° (inferior) Π² Π½ΠΎΠ²ΠΈΡ ΠΎΠ±Π΅ΠΊΡ Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΠ°. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π² Π½ΠΎΠ²ΠΈΡ ΠΎΠ±Π΅ΠΊΡ Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΠ° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ βset environmentβ ΠΈΠ»ΠΈ βunset environmentβ.
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«printΒ» Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ, Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈΡΠ΅Π½ Π²ΠΈΠ΄ (Β«/xΒ»).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΠΈ GDBserver Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° GNU/Linux/OpenRISC (or1k*-*-linux*). ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΎΡΠ»Π°Π΄ΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° GNU/Linux/LoongArch (loongarch*-*-linux*). ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° S+core (score-*-*) Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°.
- GDB 12 Π΅ ΠΎΠ±ΡΠ²Π΅Π½ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π²ΡΠΏΡΡΠΊ, Π·Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Python 2.
- Π Π΅ΠΆΠΈΠΌΡΡ Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ DBX Π΅ ΠΎΠ±ΡΠ²Π΅Π½ Π·Π° ΠΎΡΡΠ°ΡΡΠ» ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ Π² ΠΊΠ»ΠΎΠ½ GDB 13.
- Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ GDB/MI Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° β-add-inferiorβ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΈΠ»ΠΈ Π·Π°Π΅Π΄Π½ΠΎ Ρ ΡΠ»Π°Π³Π° ββno-connectionβ Π·Π° Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΎΡ ΡΠ΅ΠΊΡΡΠΈΡ ΠΎΠ±Π΅ΠΊΡ Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΠ° ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π±Π΅Π· Π²ΡΡΠ·ΠΊΠ°.
- ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Python API. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ GDB/MI Π½Π° Π΅Π·ΠΈΠΊΠ° Python. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΡΡΠ±ΠΈΡΠΈΡ 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
