Разница между отладчиками LLDB и GDB
Возможный дубликат:
Отладчики GDB Vs LLDB
Я хочу подробно узнать разницу между LLDB и отладчиком GDB. Всюду упоминается как "LLDB быстрее и эффективнее с точки зрения памяти, чем GDB". Я хочу знать, в каком смысле это быстрее и эффективнее с точки зрения памяти.
-
Когда я использую LLDB, в представлении переменных области отладки переменная-член этого конкретного класса или контроллера представления не отображается (счет).
А к локальному массиву при добавлении объектов объекты не отображаются в представлении переменных, но число объектов отображается (количество).
пример (в виде переменных):
arrayOfComments NSMutableArray * 0x068a6700 1 Объект
- > NSArray NSArray
- > NSObject
-
Когда я использую GDB, в представлении переменных области отладки отображаются переменная-член этого конкретного класса или контроллера представления.
А к локальному массиву, когда объекты добавляются, объекты и счет отображаются в виде переменных.
пример (в виде переменных):
arrayOfComments __NSArrayM * 0x68d7970 1 Объект
- > 0 Комментарий * 0x6804940 (объект отображается здесь)
-
Я наткнулся на статью, в которой LLDB понимает синтаксис точки.
po self.property
Но когда я использую его в GDB, он работает даже для "po self.property.previousProperty'sProperty", но не работает в LLDB. поэтому теперь, как LLDB понимает точечный синтаксис.
Пожалуйста, помогите.
Спасибо.
Ответы
Ответ 1
Это зависит от вашего компилятора. Я бы рекомендовал использовать отладчик lldb с помощью "Apple LLVM compiler 3.0" и gdb для GCC-аксессуаров (включая "LLVM GCC 4.2" ).
Вот некоторые ссылки, которые я нашел полезными для отладки:
http://lldb.llvm.org/tutorial.html
http://www.corbinstreehouse.com/blog/2007/10/instruments-on-leopard-how-to-debug-those-random-crashes-in-your-cocoa-app/
http://www.markj.net/iphone-memory-debug-nszombie/
http://www.cocoadev.com/index.pl?DebuggingAutorelease
Я думаю, что эти ссылки могут помочь вам
Ответ 2
"LLDB поддерживает базовую отладку командной строки и является скриптовым". LLDB также поддерживает многопоточную отладку. Таким образом, LLDB намного быстрее и эффективнее, чем отладчик GDB.
Здесь я представляю это доказательство.
Запустите процесс без аргументов.
GDB
(gdb) запустить
(gdb) r
LLVM
(lldb) запуск процесса
(lldb) запустить
(lldb) r
Вы получите точную идею, если вы пройдете через это
Отладчик LLDB