Depuradores GDB Vs LLDB


¿Cuál es la diferencia entre los depuradores GDB y LLDB? Recientemente actualizé mi versión de Xcode de 4.2 a 4.3 y comencé a recibir advertencias para actualizar mi depurador de GDB a LLDB.

Author: Eziz Durdyyev, 2012-03-14

2 answers

LLDB es parte del conjunto de herramientas LLVM al que Apple se está moviendo, incluyendo Clang. Hay un montón de características mejoradas, incluyendo un rendimiento mejorado. Hay una introducción rápida para los usuarios de GDB aquí: http://lldb.llvm.org/tutorial.html

Sin embargo...

Es posible que desee hacer un viaje a los foros en developer.apple.com. Hay un poco de ruido sobre los problemas con LLDB en este momento (en XCode 4.3.1). Un problema desagradable, que la gente de Apple ha confirmado, es que ver ivars mientras camina puede mostrarle los valores incorrectos.

 40
Author: infinitetape,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-09 18:45:27

1. Por Diferencia de Definición

Primero, ¿qué es el BGF?

" GDB es el depurador estándar para el sistema de software GNU"
El Depurador GNU, normalmente llamado solo GDB y llamado gdb como un archivo ejecutable, es el depurador estándar para el sistema operativo GNU. Sin embargo, su uso no está estrictamente limitado al sistema operativo GNU; es un depurador portátil que se ejecuta en muchos sistemas Unix y funciona para muchos lenguajes de programación, incluyendo Ada, C, C++, Objective-C, Free Pascal, Fortran, Java1 y parcialmente otros.2

(cita de wikipedia)

Segundo, ¿Qué es LLDB?

"LLDB es un depurador construido como un conjunto de componentes reutilizables que aprovechan altamente las bibliotecas existentes en el proyecto LLVM más grande, como el analizador de expresiones Clang y el desensamblador LLVM.
LLDB es el reemplazo "desde cero" de Apple para GDB, desarrollado en estrecha coordinación con los compiladores LLVM para traer depuración de última generación con amplias capacidades de control de flujo e inspección de datos. A partir de Xcode 5, todos los proyectos de desarrollo nuevos y preexistentes se reconfiguran automáticamente para usar LLDB. La instalación estándar de LLDB le proporciona un amplio conjunto de comandos diseñados para ser compatibles con los comandos GDB familiares. Además de utilizar la configuración estándar, puede personalizar fácilmente LLDB para satisfacer sus necesidades.

(cita del sitio oficial de Apple)
/* Traté de encontrar datos reales / prácticos para probar la declaración: LLDB ya es mucho más rápido que GDB al depurar programas grandes.) Sin embargo, no pude encontrarlo. si hay alguien que tiene estos datos relacionados, edite este artículo. */

Tanto GDB como LLDB son, por supuesto, excelentes depuradores sin duda.
GDB es parte del depurador del proyecto GNU creado para trabajar con el compilador GNU.
LLDB es parte del depurador del proyecto LLVM creado para trabajar a lo largo de LLVM compilación.

2. Por Diferencia de uso del Comando Depurador

La mayoría de los comandos son los mismos.
Sin embargo, lldb y gdb, dos depuradores diferentes son desarrollados por diferentes conjuntos de desarrolladores y por lo tanto tienen un poco diferentes comandos.

Este es un buen enlace a continuación para comparar la diferencia de estos dos comandos del depurador.
permítanme enlazar el detalle a continuación : 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

Esto indica y organiza claramente la diferencia de comandos.

En caso de que el sitio ya no sea accesible, resumo la mayor diferencia de comandos a continuación desde el sitio vinculado.

Diferencia de órdenes de ejecución entre GDB y LLDBDiferencia de comandos de punto de interrupción entre GDB y LLDBExaminar la diferencia de órdenes variables entre GDB y LLDBExaminar la diferencia de comandos de estado de hilo entre GDB y LLDB

3. Por Personal Opinión

LLDB ha sido completamente integrado desde Xcode IDE 5 por defecto como depurador primario.
Desde ese momento, ha habido algún informe de queja sobre la estabilidad LLDB, problemas de rendimiento y errores.
Sin embargo, LLVM con el proyecto LLDB ha sido increíblemente mejorado y actualizado hasta ahora como el uno del proyecto de código abierto principal en el mundo.
Entonces, creo que, al menos, LLDB debería usarse para el entorno de desarrollo de Apple, ya que LLDB robó la posición de GDB y ya está depurador predeterminado principal al menos en el mundo de Apple.
(A finales de septiembre de 2016, Xcode 8 integrating LLVM and LLDB fue lanzado oficialmente, lo que significa que ha pasado bastante tiempo desde que LLVM/LLDB es una cadena de herramientas predeterminada para Xcode.)
Pero, todos sabemos que GDB ha sido históricamente y fuertemente verificado y depurador probado en batalla durante 30 años, lo cual es increíble.

Entonces, yo diría {
Me gustaría usar lldb mientras usa clang, usar gdb mientras usa el compilador gcc como el bueno combinación o par porque lldb está basado en llvm, mientras que gdb es un depurador de GNU.

Me gustaría que pudiera ser útil para usted.

Gracias.

 11
Author: boraseoksoon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-27 12:52:19