12

可能重复:
GDB 与 LLDB 调试器

我想详细了解LLDB和GDB调试器的区别。到处都提到“LLDB 比 GDB 更快、内存效率更高”。我想知道它在什么意义上更快和内存效率更高。

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

    示例(在变量视图中):

    arrayOfComments NSMutableArray * 0x068a6700 1 对象

    ->NSArray NSArray

    ->NSObject

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

    示例(在变量视图中):

    arrayOfComments __NSArrayM * 0x68d7970 1 个对象

    ->0 Comment * 0x6804940(此处显示对象)

  3. 我看到一篇文章说 LLDB 理解点语法。

    po self.property

    但是当我在 GDB 中使用它时,它甚至适用于“po self.property.previousProperty'sProperty”,但在 LLDB 中不起作用。那么现在 LLDB 如何理解点语法。

请帮忙。

谢谢你。

4

2 回答 2

6

这取决于你的编译器。我建议将 lldb 调试器与“Apple LLVM 编译器 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

我认为这些链接可能会对您有所帮助

于 2012-12-21T04:51:24.930 回答
-2

“LLDB 支持基本的命令行调试并且可以编写脚本”。LLDB 还支持多线程调试。因此 LLDB 比 GDB 调试器更快、更高效。

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

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

广发银行

(gdb) 运行

(gdb) r


LLVM

(lldb) 进程启动

(lldb) 运行

(lldb) r

你会得到一个确切的想法,如果你通过这个 LLDB 调试器

于 2012-12-21T04:56:23.747 回答