gpt4 book ai didi

macos - 你如何在 OSX 中调试 libc?

转载 作者:行者123 更新时间:2023-12-01 09:52:40 26 4
gpt4 key购买 nike

我希望能够静态链接到带有调试符号的 libc 构建,然后通过 lldb 运行我的程序。

otool -L <my binary>

让它看起来像唯一的动态链接库 (dll) 是:

/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)

我猜是 libc dll(尽管 nm 没有列出我在 libc 中期望的所有内容)。也许只是某种 stub 加载程序。

/usr/lib/ Apple 似乎没有提供 libSystem 的调试版本。

如何在 OSX (10.11.3) 上调试 libc?

可能重复: On Mac OS X, how can you get a debug build of System/LibC for source level debugging?

最佳答案

我很难理解你的问题,但我认为有一些要点可以涵盖你的问题:

otool -L 将显示您正在链接的所有动态库。

/usr/lib/libSystem.B.dylib 是一个伞形库,可重新导出多个 dylib,包括 libc (/usr/lib/system/libsystem_c.dylib)。如果您想查看哪些符号是系统 C 运行时的一部分,您需要在该 dylib 上使用 nm,而不是 libSystem。

如果您在自己的 libc 中静态链接,那么它不会出现在“otool -L”中,因为它是一个静态库,因此是您的可执行文件的一部分。

如果您将自己的 libc 静态链接到您的可执行文件中,那么在您的二进制文件上使用 nm 可能不会显示您期望的所有符号,因为链接器将优化掉您的可执行文件不需要的死代码。您可以使用 ld 的 -force_load 选项确保添加所有内容。查看 ld 手册页以获取更多详细信息。

关于macos - 你如何在 OSX 中调试 libc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35691752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com