Amarengo

Articles and news

GDB Vs LLDB debuggers

1. Door verschil in Definitie

Ten eerste, wat is GDB?

“gdb is de standaard debugger voor het GNU-softwaresysteem”
de GNU-Debugger, meestal gewoon GDB genoemd en GDB genoemd als een uitvoerbaar bestand, is de standaard debugger voor het GNU-besturingssysteem. Het gebruik ervan is echter niet strikt beperkt tot het GNU-besturingssysteem; het is een draagbare debugger die draait op vele Unix-achtige systemen en werkt voor vele programmeertalen, waaronder Ada, C, C++, Objective-C, Free Pascal, Fortran, Java1 en gedeeltelijk anderen.2
(citaat uit wikipedia)

ten tweede, Wat is LLDB?

“LLDB is een debugger gebouwd als een set van herbruikbare componenten die sterk gebruik maken van bestaande bibliotheken in de grotere LLVM Project, zoals de Clang expression parser en LLVM disassembler.
LLDB is Apple ‘ s “from the ground up” vervanging voor GDB, ontwikkeld in nauwe samenwerking met de LLVM compilers om u state-of-the-art debugging met uitgebreide mogelijkheden in flow control en data inspectie. Beginnend met Xcode 5, worden alle nieuwe en reeds bestaande ontwikkelingsprojecten automatisch opnieuw geconfigureerd om LLDB te gebruiken. De standaard LLDB installatie biedt u een uitgebreide set van commando ’s ontworpen om compatibel te zijn met bekende GDB commando’ s. Naast het gebruik van de standaard configuratie, kunt u eenvoudig LLDB aanpassen aan uw behoeften.
(citaat van Apple officiële site)
/* ik heb geprobeerd om feitelijke / praktische gegevens te vinden om de verklaring te bewijzen : LLDB is al veel sneller dan GDB bij het debuggen van grote programma ‘ s.) Echter, Ik kon het niet vinden. als er iemand is met deze gerelateerde gegevens, bewerk dan dit artikel. */

zowel GDB als LLDB zijn natuurlijk uitstekende debuggers zonder twijfel.
GDB is een debugger die deel uitmaakt van het GNU-project dat is gemaakt om langs de GNU-compiler te werken.
LLDB is debugger onderdeel van het LLVM project gemaakt om te werken langs LLVM compiler.

2. Door verschil in gebruik van Debuggercommando ‘s

zijn de meeste commando’ s hetzelfde.
echter, lldb en gdb, twee verschillende debuggers zijn ontwikkeld door verschillende set van ontwikkelaars en hebben dus een beetje verschillende commando ‘ s.

dit is een goede link hieronder voor het vergelijken van het verschil van deze twee debugger commando ‘ s.
laat me het onderstaande detail linken : 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

dit geeft duidelijk aan en organiseert het verschil van commando ‘ s.

in het geval dat de site niet meer toegankelijk is, vat ik het belangrijkste verschil van onderstaande commando ‘ s op van de gelinkte site.

verschil tussen GDB en LLDBverschil tussen Break-Point-commando 's tussen GDB en LLDBverschil tussen variabele commando' s tussen GDB en LLDBverschil tussen thread state-commando ' s tussen GDB en LLDB
3. Naar persoonlijke mening is
LLDB volledig geïntegreerd vanuit Xcode ide 5 standaard als primaire debugger.
vanaf dat moment is er een aantal klachten rapport over LLDB stabiliteit, prestaties problemen en bugs.
echter, LLVM met LLDB project is ongelooflijk verbeterd en opgewaardeerd tot het een van de kern open-source project in de wereld.
dus, ik denk dat, tenminste, LLDB moet worden gebruikt voor Apple development environment sinds LLDB stal de positie van GDB en is al primaire standaard debugger ten minste in Apple wereld.
(eind September 2016 werd de Xcode 8 integratie van LLVM en LLDB officieel vrijgegeven, wat betekent dat er veel tijd is verstreken sinds LLVM / LLDB is standaard tool-chain voor Xcode.)
maar, We weten allemaal al dat GDB historisch en sterk geverifieerd en strijd bewezen debugger over 30 jaar, dat is geweldig.

dus, ik zou zeggen…
ik zou graag lldb gebruiken tijdens het gebruik van clang, gebruik GDB tijdens het gebruik van GCC compiler als de goede combinatie of paar omdat lldb is gebaseerd op llvm, terwijl gdb een GNU debugger is.

ik wou dat het u kon helpen.

bedankt.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.