在 Mac OS X 上,如何获得 System/LibC 的调试版本以进行源代码级调试?
我从 opensource.apple.com 下载了 LibC 源代码,但由于它是一个整体库 /usr/lib/libSystem.B.dylib 的一部分,我是否必须以某种方式重建整个库?
我有一个从 Linux 移植的 BSD 命令行程序。我希望能够在 LibC 函数中设置断点并单步执行。我正试图接近我的程序中似乎存在堆损坏的情况(这在 Linux 上不会发生 - 我已经移植回 Linux 并在那里运行 memcheck 。)
I downloaded LibC source from opensource.apple.com, but since it's part of one monolithic library /usr/lib/libSystem.B.dylib would I have to somehow rebuild the entire thing?
I have a BSD command line program, ported from Linux. I want to be able to set breakpoints in LibC functions and step through. I'm trying to close in on what seems to be heap corruption in my program (which doesn't occur on Linux - I've already ported back to Linux and run memcheck there.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否查看过 Apple 的内核调试工具包 (http://developer.apple.com/sdk/ ) ?我知道它包含内核符号,但我不确定 libc 是否是 SDK 的一部分。
Have you take a look at the Kernel Debug Kit from Apple (http://developer.apple.com/sdk/) ? I know that it contains kernel symbols, but I am not sure if libc is part of the SDK.
您可以自己构建 Valgrind - 要么使用 10.5 上发布的最后一个版本,要么查看错误跟踪器中的 Snow Leopard 支持错误,该错误有一个补丁。
或者,尝试 malloc(3) 手册。
You can build Valgrind yourself - either use the last version released on 10.5, or look on the bug tracker for the Snow Leopard support bug, which has a patch.
Alternately, try the memory debugging tools in the malloc(3) manual.