LLDB和GDB调试器之间的区别

时间:2012-12-21 04:40:23

标签: iphone objective-c ios

  

可能重复:
  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中使用它时,它甚至可以用于“po self.property.previousProperty'sProperty”,但在LLDB中不起作用。那么现在LLDB如何理解点语法。

  4. 请帮忙。

    谢谢。

2 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:-2)

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

我在这里展示了这个证据。

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

GDB

(gdb)运行

(gdb)r


LLVM

(lldb)流程启动

(lldb)运行

(lldb)r

如果你仔细考虑,你会得到一个确切的想法 The LLDB Debugger