Amarengo

Articles and news

Débogueurs GDB Vs LLDB

1. Par différence de définition

Tout d’abord, Qu’est-ce que GDB?

 » GDB est le débogueur standard pour le système logiciel GNU  »
Le débogueur GNU, généralement appelé simplement GDB et nommé gdb en tant que fichier exécutable, est le débogueur standard pour le système d’exploitation GNU. Cependant, son utilisation n’est pas strictement limitée au système d’exploitation GNU; c’est un débogueur portable qui fonctionne sur de nombreux systèmes de type Unix et fonctionne pour de nombreux langages de programmation, notamment Ada, C, C++, Objective-C, Free Pascal, Fortran, Java1 et partiellement d’autres.2
(citation de wikipedia)

Deuxièmement, Qu’est-ce que le LLDB?

 » LLDB est un débogueur construit comme un ensemble de composants réutilisables qui exploitent fortement les bibliothèques existantes dans le projet LLVM plus vaste, telles que l’analyseur d’expression Clang et le désassembleur LLVM.
LLDB est le remplacement  » à partir de zéro » d’Apple pour GDB, développé en étroite coordination avec les compilateurs LLVM pour vous apporter un débogage de pointe avec des capacités étendues de contrôle de flux et d’inspection des données. À partir de Xcode 5, tous les projets de développement nouveaux et préexistants sont automatiquement reconfigurés pour utiliser LLDB. L’installation standard de LLDB vous fournit un ensemble complet de commandes conçues pour être compatibles avec les commandes GDB familières. En plus d’utiliser la configuration standard, vous pouvez facilement personnaliser LLDB en fonction de vos besoins.
(citation du site officiel d’Apple)
/* J’ai essayé de trouver des données réelles / pratiques pour prouver l’affirmation: LLDB est déjà beaucoup plus rapide que GDB lors du débogage de gros programmes.) Cependant, je ne pouvais pas le trouver. s’il y a quelqu’un qui possède ces données connexes, veuillez modifier cet article. */

GDB et LLDB sont bien sûr d’excellents débogueurs sans aucun doute.
GDB fait partie du débogueur du projet GNU créé pour fonctionner avec le compilateur GNU.
LLDB fait partie du débogueur du projet LLVM créé pour fonctionner avec le compilateur LLVM.

2. Par différence d’utilisation de la commande du débogueur

La majorité des commandes sont les mêmes.
Cependant, lldb et gdb, deux débogueurs différents sont développés par différents ensembles de développeurs et ont donc des commandes un peu différentes.

C’est un bon lien ci-dessous pour comparer la différence de ces deux commandes de débogueur.
permettez-moi de lier le détail ci-dessous : 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

Cela indique et organise clairement la différence des commandes.

Dans le cas où le site n’est plus accessible, je résume la différence majeure des commandes ci-dessous par rapport au site lié.

 Différence de commande d'exécution entre GDB et LLDB  Différence de commande de point de rupture entre GDB et LLDB  Examen de la différence de commande variable entre GDB et LLDB  Examen de la différence de commande d'état de thread entre GDB et LLDB
3. Par avis personnel
LLDB a été entièrement intégré à partir de Xcode ID 5 par défaut en tant que débogueur principal.
Depuis ce temps, il y a eu un rapport de plainte concernant la stabilité de LLDB, les problèmes de performances et les bogues.
Cependant, le projet LLVM avec LLDB a été incroyablement amélioré et amélioré jusqu’à présent comme l’un des principaux projets open source au monde.
Donc, je pense au moins que LLDB devrait être utilisé pour l’environnement de développement Apple car LLDB a volé la position de GDB et est déjà le débogueur principal par défaut au moins dans le monde Apple.
(Fin septembre 2016, Xcode 8 intégrant LLVM et LLDB a été officiellement publié, ce qui signifie que beaucoup de temps s’est écoulé depuis que LLVM/LLDB est la chaîne d’outils par défaut pour Xcode.)
Mais, Nous savons tous déjà que GDB a été un débogueur historiquement et fortement vérifié et éprouvé au combat pendant plus de 30 ans, ce qui est génial.

Donc, je dirais…
Je voudrais utiliser lldb tout en utilisant clang, utiliser gdb tout en utilisant le compilateur gcc comme bonne combinaison ou paire car lldb est basé sur llvm, alors que gdb est un débogueur GNU.

Je souhaite que cela puisse vous être utile.

Merci.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.