2012-12-21 52 views
12

可能重复:
GDB Vs LLDB debuggers差异调试

我想知道详细LLDB和GDB调试器之间的差异。它在任何地方都被称为“LLDB比GDB更快,更有效率”。我想知道它的速度和记忆效率。

  1. 当我使用LLDB时,在调试区域的变量视图中,该特定类或视图控制器的成员变量不显示(count)。 对于添加对象的本地数组,对象不显示在变量视图中,但会显示(计数)对象的数量。

    示例(在变量查看):

    arrayOfComments的NSMutableArray * 0x068a6700 1对象

    - >的NSArray的NSArray

    - > NSObject的

  2. 当我使用GDB,在变量查看显示调试区域的特定类或视图控制器的成员变量。 对于添加对象的本地数组,对象以及计数显示在变量视图中。

    示例(在变量查看):

    arrayOfComments __NSArrayM * 0x68d7970 1对象

    - > 0评价* 0x6804940(此处显示的对象)

  3. 予跨越文称LLDB来到了解点语法。

    PO self.property

    但是当我在GDB使用它的作品甚至“宝self.property.previousProperty'sProperty”,但在LLDB不起作用。所以现在LLDB如何理解点语法。

请帮忙。

谢谢。

回答

6

这取决于你的编译器。我建议使用带有“Apple LLVM编译器3.0”的lldb调试器,并使用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

我认为这些链接可以帮助你

+0

谢谢你。@冰 – user1899840

-2

“LLDB支持基本命令行调试&它是可脚本化的”。 LLDB还支持多线程调试。因此LLDB比GDB调试器高效得多。

在这里,我提出了这个证明。

启动一个没有参数的进程。

GDB

(GDB)运行

(GDB)R


LLVM

(LLDB)进程启动

(LLDB)运行

(LLDB)R

,你会得到一个确切的想法,如果你通过这个 The LLDB Debugger