Подтвердить что ты не робот

Разница между отладчиками 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 понимает точечный синтаксис.

Пожалуйста, помогите.

Спасибо.

4b9b3361

Ответ 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