Amarengo

Articles and news

GDB Vs LLDB debuggere

1. VED forskel på Definition

først, Hvad er GDB?

“GDB er standard debugger for GNU-systemet”
GNU Debugger, normalt kaldet bare GDB og navngivet gdb som en eksekverbar fil, er standard debugger for GNU-operativsystemet. Imidlertid er brugen ikke strengt begrænset til GNU-operativsystemet; det er en bærbar debugger, der kører på mange unikke systemer og fungerer til mange programmeringssprog, herunder Ada, C, C++, Objective-C, Free Pascal, Fortran, Java1 og delvist andre.2
)

for det andet, hvad er LLDB?

“LLDB er en debugger bygget som et sæt genanvendelige komponenter, der i høj grad udnytter eksisterende biblioteker i det større LLVM-projekt, såsom Clang-ekspressionsparser og LLVM disassembler.
Lldb er Apples “fra bunden” erstatning for GDB, udviklet i tæt samarbejde med LLVM compilere til at bringe dig state-of-the-art debugging med omfattende kapaciteter i strømningskontrol og datainspektion. Fra og med kode 5 konfigureres alle nye og allerede eksisterende udviklingsprojekter automatisk til at bruge LLDB. Standard lldb-installationen giver dig et omfattende sæt kommandoer designet til at være kompatible med velkendte GDB-kommandoer. Ud over at bruge standardkonfigurationen kan du nemt tilpasse LLDB, så den passer til dine behov.
(citat fra Apples officielle side)
/* jeg forsøgte at finde faktiske / praktiske data for at bevise udsagnet : LLDB er allerede meget hurtigere end GDB, når der debugges store programmer.) Jeg kunne dog ikke finde det. hvis der er nogen, der har disse relaterede data, skal du redigere denne artikel. */

både GDB og LLDB er selvfølgelig fremragende debuggere uden tvivl.
GDB er debugger del af GNU-projektet skabt til at arbejde sammen med GNU compiler.
LLDB er debugger del af LLVM projektet skabt til at arbejde sammen LLVM compiler.

2. VED forskel på Debugger kommando brug

størstedelen af kommandoerne er de samme.
men lldb og gdb, to forskellige debuggere er udviklet af forskellige sæt udviklere og har således en lille smule forskellige kommandoer.

dette er et godt link nedenfor for at sammenligne forskellen mellem disse to debugger-kommandoer.
lad mig linke detaljerne nedenfor : https://developer.apple.com/library/content/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/lldb-command-examples.html

http://lldb.llvm.org/lldb-gdb.html

dette indikerer og organiserer tydeligt forskellen på kommandoer.

hvis siden ikke længere er tilgængelig, opsummerer jeg den største forskel på kommandoer nedenfor fra det linkede sted.

Eksekveringskommandoforskel mellem GDB og LLDBBreak-Point kommandoforskel mellem GDB og LLDBundersøgelse af variabel kommandoforskel mellem GDB og LLDBundersøgelse af trådstatskommandoforskel mellem GDB og LLDB
3. Ved personlig mening
er LLDB som standard fuldt integreret fra IDE 5 som primær debugger.
fra den tid har der været en vis klagerapport om lldb-stabilitet, ydelsesproblemer og fejl.
imidlertid, LLVM med lldb projekt er blevet utrolig forbedret og opgraderet så langt som en af de centrale open source-projekt i verden.
så jeg tror i det mindste, at LLDB skal bruges til Apple-udviklingsmiljø, da LLDB stjal GDB ‘ s position og allerede er primær standard debugger i det mindste i Apple-verdenen.
(i slutningen af September 2016 blev Kode 8, der integrerede LLVM og LLDB, officielt frigivet, hvilket betyder, at der er gået en hel del tid siden LLVM/LLDB er standardværktøjskæde til kode.)
men vi ved alle allerede, at GDB er blevet historisk og stærkt verificeret og kampbevist debugger over 30 år, hvilket er fantastisk.

så jeg vil sige…
jeg vil gerne bruge lldb, mens du bruger clang, brug gdb, mens du bruger gcc compiler som den gode kombination eller par, fordi lldb er baseret på llvm, mens gdb er en GNU debugger.

jeg ville ønske, det kunne være nyttigt for dig.

Tak.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.