
GNU Debugger jest standardowym debugerem kompilatora GNU. Jest to przenośny debugger, którego można używać na różnych platformach Unix.
Ostatnio Ogłoszono wydanie nowej wersji debuggera GDB 14.1, jest to pierwsza wersja serii 14, w której dodano wiele nowych funkcji, atrybutów, klas i zdarzeń, a także ulepszenia obsługi, poprawki błędów i nie tylko.
Ci, którzy nie wiedzą o GDB, powinni wiedzieć, że to jest debugerem projektu GNU, a ten debuger pozwala „zobaczyć”, co dzieje się „wewnątrz” innego programu podczas jego działania lub co robił inny program w momencie wystąpienia awarii.
GDB może robić cztery główne rodzaje rzeczy (oprócz innych rzeczy wspierających te), aby pomóc użytkownikowi wykryć błędy w wykonywaniu programów:
- Uruchom program, określając wszystko, co może mieć wpływ na jego zachowanie.
- Posiada możliwość zatrzymania programu w określonych warunkach.
- Sprawdź, co się stało, gdy program się zatrzymał.
- Zmieniaj rzeczy w programie tak, aby użytkownik mógł poeksperymentować z korygowaniem skutków jednego błędu i kontynuować naukę kolejnego.
Programy te mogą działać na tej samej maszynie co GDB (natywnie), na innej maszynie (zdalnie) lub w symulatorze. GDB może działać na najpopularniejszych wariantach systemów UNIX i Microsoft Windows, a także na macOS.
GDB obsługuje debugowanie na poziomie źródła dla szerokiej gamy języków programowanie, takie jak: Ada, Assembly, C, C++, D, Fortran, Go, OpenCL, Objective-C, Modula-2, Pascal i Rust.
Główne nowe funkcje GDB 14.1
W tej nowej wersji GDB 14.1 jest to początkowe zintegrowane wsparcie dla debugować protokół adaptera (DAP) opracowany przez firmę Microsoft a to pozwala na wdrożenie ogólnego debugera, dzięki czemu narzędzia programistyczne mogą komunikować się z różnymi debugerami poprzez adaptery debugujące, które z kolei mogą być ponownie wykorzystane w wielu narzędziach programistycznych. Zasadniczo sprowadza się to do wysiłku w zakresie obsługi nowego debugera w różnych narzędziach.
Kolejną zmianą wyróżniającą się w tej nowej wersji są Wdrożono ulepszenia wsparcia, tak jak początkowa obsługa typów całkowitych większych niż 64 bity, obsługa włączania lub wyłączania poszczególnych funkcji zdalnego celu, a także ulepszona obsługa Ady dla atrybutów Ada 2022 „Enum_Rep i „Enum_Val.
Poza tym GDB teraz rozpoznaje zmienną środowiskową NO_COLOR i ma Ulepszona obsługa AArch64, od czasu dodania początkowej obsługi rozszerzeń MŚP i SME2.
Ponadto Funkcje i ustawienia GDB zostały usunięte które są już obsługiwane w nowej wersji, na przykład GDB 14.1 nie jest już kompatybilny z AiX 4.x, 5.xi 6.x, obsługa GDB/MI w wersji 1 została usunięta.
Dodano funkcję $_shell” umożliwiającą wykonanie polecenia w powłoce i zwróci wynik, polecenie „list” przyjmuje teraz „.” jako argument, aby wydrukować położenie punktu wykonania w bieżącej ramce stosu, dodano »%V» do formatu wyjściowego poleceń printf i dprintf, Polecenie printf ogranicza teraz rozmiar ciągów uzyskanych z wartości mniejszej niż wartość ustawienia „max-value-size” oraz dodano nowe polecenia debugowania i konserwacji.
Jeśli chodzi o ulepszenia obsługi języka Pythonten otrzymał najwięcej, a wyróżnia się:
- Nowe zajęcia: gdb.Thread, gdb.unwinder.FrameId, gdb.ValuePrinter
- Nowe atrybuty: gdb.Lower.arguments, co powoduje, że argumenty wiersza poleceń są umieszczane na dole, jeśli są znane, gdb.Lower.main_name, który zawiera nazwę „głównego” niższego, jeśli jest znany, gdb.Breakpoint.Lower, gdb.Progspace.symbol_file, gdb.Progspace.executable_filename
- Nowe funkcje: gdb.execute_mi(KOMANDA, [ARG]…), gdb.block_signals()
- Nowe metody: gdb.Value 'to_array', gdb.Progspace 'objfile_for_address', 'gdb.Frame.static_link, gdb.Inferior 'clear_env', 'set_env' i 'unset_env'
- Nowe wydarzenia: gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent gdb.NewProgspaceEvent i gdb.FreeProgspaceEvent.
- Interfejs API Disassemblera modułu gdb.disassembler został rozszerzony o obsługę stylizacji
gdb.parse_and_eval - Atrybut gdb.unwinder.Unwinder.enabled może teraz akceptować tylko wartości typu „bool”.
Nie jest już możliwe podklasowanie typu gdb.disassembler.DisassemblerResult.
Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły w następujący link.