ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π»ΠΈΠ· ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° 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