【问题标题】:On Mac OS X, how can you get a debug build of System/LibC for source level debugging?在 Mac OS X 上,如何获得 System/LibC 的调试版本以进行源代码级调试?
【发布时间】:2009-11-09 23:21:07
【问题描述】:

我从 opensource.apple.com 下载了 LibC 源代码,但由于它是一个单一库 /usr/lib/libSystem.B.dylib 的一部分,我是否必须以某种方式重建整个东西?

我有一个从 Linux 移植的 BSD 命令行程序。我希望能够在 LibC 函数中设置断点并逐步执行。我正在尝试解决我的程序中似乎是堆损坏的问题(这在 Linux 上不会发生 - 我已经移植回 Linux 并在那里运行 memcheck。)

【问题讨论】:

    标签: debugging macos libc


    【解决方案1】:

    您看过 Apple 的内核调试工具包 (http://developer.apple.com/sdk/) 吗?我知道它包含内核符号,但我不确定 libc 是否是 SDK 的一部分。

    【讨论】:

      【解决方案2】:

      您可以自己构建 Valgrind - 使用 10.5 上发布的最新版本,或者查看错误跟踪器以查找有补丁的 Snow Leopard 支持错误。

      或者,试试 malloc(3) manual 中的内存调试工具。

      【讨论】:

      • 我在 Snow Leopard 上尝试了 valgrind。我只需要解决补丁未涵盖的系统调用 - 例如 sigwait() 。 (有用的移植经验。)最后,valgrind 告诉我的只是调试器所做的——无效写入(通过废弃的指针值)。我仍然希望能够单步执行 libC 调用以查看指针何时变为无效。无论如何,谢谢。
      猜你喜欢
      • 2010-10-16
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 2011-01-13
      • 2015-08-08
      • 2012-04-17
      • 1970-01-01
      • 2013-03-30
      相关资源
      最近更新 更多