Amarengo

Articles and news

GDB Vs LLDB debuggers

1. Med skillnad i Definition

först, vad är GDB?

”GDB är standard debugger för GNU software system”
GNU Debugger, brukar kallas bara GDB och heter gdb som en körbar fil, är standard debugger för GNU operativsystem. Användningen är dock inte strikt begränsad till GNU-operativsystemet; det är en bärbar debugger som körs på många Unix-liknande system och fungerar för många programmeringsspråk, inklusive Ada, C, C++, Objective-C, Free Pascal, Fortran, Java1 och delvis andra.2
(citat från wikipedia)

för det andra, Vad är LLDB?

”LLDB är en debugger byggd som en uppsättning återanvändbara komponenter som starkt utnyttjar befintliga bibliotek i det större LLVM-projektet, såsom Clang expression parser och LLVM disassembler.
LLDB är Apples ”från grunden” ersättning för GDB, utvecklad i nära samordning med LLVM-kompilatorerna för att ge dig toppmodern felsökning med omfattande funktioner inom flödeskontroll och datainspektion. Från och med Xcode 5 konfigureras alla nya och redan existerande utvecklingsprojekt automatiskt för att använda LLDB. Standard LLDB-installationen ger dig en omfattande uppsättning kommandon som är utformade för att vara kompatibla med bekanta GDB-kommandon. Förutom att använda standardkonfigurationen kan du enkelt anpassa LLDB efter dina behov.
(citat från Apples officiella webbplats)
/* jag försökte hitta faktiska / praktiska data för att bevisa uttalandet : LLDB är redan mycket snabbare än GDB vid felsökning av stora program.) Men jag kunde inte hitta den. om det finns någon som har denna relaterade data, redigera den här artikeln. */

både GDB och LLDB är naturligtvis utmärkta debuggers utan tvekan.
GDB är debugger del av GNU-projektet som skapats för att arbeta längs GNU kompilatorn.
LLDB är debugger del av LLVM projekt som skapats för att arbeta längs LLVM kompilator.

2. Genom skillnad av Debugger kommando användning

majoriteten av kommandona är desamma.
men lldb och gdb, två olika debuggers utvecklas av olika uppsättning utvecklare och därmed har lite olika kommandon.

detta är bra länken nedan för att jämföra skillnaden mellan dessa två debugger kommandon.
låt mig länka detaljerna nedan : 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

detta indikerar tydligt och organiserar skillnaden i kommandon.

om webbplatsen inte är tillgänglig längre sammanfattar jag den stora skillnaden mellan kommandon nedan från den länkade webbplatsen.

Exekveringskommandodifferens mellan GDB och LLDBBrytpunktskommandodifferens mellan GDB och LLDBUndersök variabel kommandodifferens mellan GDB och LLDBUndersök trådstatskommandodifferens mellan GDB och LLDB
3. Genom personlig åsikt
LLDB har integrerats helt från Xcode IDE 5 som standard som primär debugger.
från den tiden har det förekommit några klagomål om LLDB-stabilitet, prestandaproblem och buggar.
LLVM med LLDB-projektet har dock blivit otroligt förbättrat och uppgraderat så långt som det av världens kärnprojekt med öppen källkod.
så, jag tror, åtminstone, LLDB bör användas för Apple utvecklingsmiljö eftersom LLDB stal position GDB och är redan primär standard debugger åtminstone i Apple världen.
(i slutet av September, 2016, Xcode 8 integrera LLVM och LLDB officiellt släpptes, vilket innebär en hel del tid har gått sedan LLVM/LLDB är standardverktygskedja för Xcode.)
men vi vet alla redan att GDB har varit historiskt och starkt verifierad och kampbevisad debugger över 30 år, vilket är fantastiskt.

så skulle jag säga…
jag skulle vilja använda lldb medan du använder clang, använd gdb medan du använder gcc compiler som den bra kombinationen eller paret eftersom lldb är baserat på llvm, medan gdb är en GNU debugger.

Jag önskar att det kunde vara till hjälp för dig.

tack.

Lämna ett svar

Din e-postadress kommer inte publiceras.