ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ ΡΠ΅Π»ΠΈΠ· Π½Π° ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° GDB 15.1 (ΠΏΡΡΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡ ΡΠ΅ΡΠΈΡ 15.x, ΠΊΠ»ΠΎΠ½ 15.0 Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°). GDB ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π·Π° Π³ΠΎΠ»ΡΠΌΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡΠΈ (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust ΠΈ Π΄Ρ.) Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ (i386, amd64, ARM, Power, Sparc, RISC-V ΠΈ Π΄Ρ.) ΠΈ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ (GNU/Linux, *BSD, Unix, Windows, macOS).
ΠΠ»ΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ:
- ΠΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° GDB ΠΈ GDBserver ΡΠ΅Π³Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° C++17 (ΠΏΠΎΠ½Π΅ GCC 9).
- ΠΠ½Π΅ΡΠ΅Π½ΠΈ ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Python API. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ gdb.notify_mi, gdb.missing_debug.register_handler ΠΈ gdb.interrupt, ΠΊΠ»Π°ΡΡΡ gdb.missing_debug.MissingDebugInfo, ΠΌΠΎΠ΄ΡΠ»ΡΡ db.missing_debug, Π°ΡΡΠΈΠ±ΡΡΠΈΡΠ΅ gdb.Value.bytes ΠΈ gdb.InferiorThread.ptid_string, ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈΡΠ΅ gdb.SYMBOL_TYPE_DOMAIN, gdb.SYMBOL_FUNCTION_DOMAIN ΠΈ gdb.SEARCH_*_DOMAIN. Π ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ gdb.Inferior ΠΈ gdb.InferiorThread Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ.
- ΠΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½Π° Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° DAP (Debugger Adapter Protocol). ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«set debug dap-log-levelΒ» Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Π·Π° DAP. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Β«cancelΒ» ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΠ΅ Β«processΒ».
- Π ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ QThreadOptions ΠΈ qIsAddressTagged, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«set/show remote thread-options-packetΒ».
- Π GDBserver Π΅ ΡΠΏΡΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΎΠΏΡΠΈΠΈΡΠ΅ Β«--remote-debugΒ» ΠΈ Β«--event-loop-debugΒ», ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ βmonitor set remote-debugβ ΠΈ βmonitor set event-loop-debugβ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΡ , Π² ΠΎΠΏΡΠΈΡΡΠ° Β«--debugΒ» Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΏΠΈΡΡΠΊ ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Ρ Π·Π°ΠΏΠ΅ΡΠ°ΠΈ (all, threads, event-loop ΠΈ remote). ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βmonitor set debugβ.
- Π ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° main, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΡΠΊΠΎΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
- ΠΠ±ΡΠ²Π΅Π½ΠΈ Π·Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ ΡΠ° MPX ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ Β«show/set mpx boundΒ», ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠΈΡΠΎ Intel ΡΠΏΡΡ ΠΏΡΠ΅Π· 2019 Π³ΠΎΠ΄ΠΈΠ½Π°.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
- Β«set/show direct-call-timeoutΒ»
- Β«set/show indirect-call-timeoutΒ»
- Β«set/show unwind-on-timeout on|offΒ»
- Β«set/show unwind-on-signal on|offΒ»
- Π ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ Β«gcoreΒ» ΠΈ Β«generate-core-fileΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠ°Π·Π½ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π² Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ core ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
