2012-12-21 13 views
12

Powiel możliwe:
GDB Vs LLDB debuggersRóżnica między LLDB i GDB Debuggers

Chcę znać różnicę między LLDB i GDB debugger w szczegółach. Wszędzie wspomina się o tym, że "LLDB jest szybszy i wydajniejszy pod względem pamięci niż GDB". Chcę wiedzieć, w jakim sensie jest on szybszy, a pamięć wydajna.

  1. Gdy używam LLDB, w widoku zmiennych obszaru debugowania, członek zmienna danej klasy lub widoku kontrolera nie są wyświetlane (liczyć). A do lokalnej tablicy po dodaniu obiektów obiekty nie są wyświetlane w widoku zmiennych, ale wyświetlany jest numer obiektu (liczba).

    przykład (zmienne zobaczyć):

    arrayOfComments NSMutableArray * 0x068a6700 1 Przedmiot

    -> NSArray NSArray

    -> NSObject

  2. Podczas korzystania GDB w zmiennych zobaczyć obszaru debugowania, wyświetlana jest zmienna składowa danej klasy lub kontrolera widoku. A do lokalnej tablicy po dodaniu obiektów obiekty oraz liczba wyświetlana jest w widoku zmiennych.

    przykład (w zmiennych zobaczyć):

    arrayOfComments __NSArrayM * 0x68d7970 1 Przedmiot

    -> 0 Komentarz * 0x6804940 (wyświetlany jest obiektem tutaj)

  3. natknąłem się na artykuł mówiący LLDB rozumie składnię kropkową.

    PO self.property

    Ale kiedy go używać w GDB działa nawet dla „PO self.property.previousProperty'sProperty”, ale nie działa w LLDB. więc jak teraz LLDB rozumie składnię kropkową.

Proszę o pomoc.

Dziękuję.

Odpowiedz

6

To zależy od Twojego kompilatora. Polecam używanie debuggera Lldb z "kompilatorem Apple LLVM 3.0" i gdb dla smaków GCC (w tym "LLVM GCC 4.2").

Oto niektóre łącza znalazłem użyteczne dla debugowania:

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

Myślę, że te linki mogą pomóc

+0

dziękuję. @ Bing – user1899840

-2

"LLDB obsługuje podstawowe debugowanie wiersza poleceń & jest skryptowalne". LLDB obsługuje również debugowanie wielowątkowe. Tak więc LLDB jest znacznie szybszy niż & wydajny niż debugger GDB.

Tutaj przedstawiam dowód fpr.

Uruchom proces bez argumentów.

GDB

(gdb) prowadzony

(gdb) R


LLVM

uruchomienie

(lldb) Proces

(lldb) prowadzony

(lldb) r

Dostaniesz dokładną pomysł, jeśli przejdziesz przez ten The LLDB Debugger