gpt4 book ai didi

ios - 为什么我不能在我的库中设置断点?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:35:09 24 4
gpt4 key购买 nike

目标是调试库深处的方法。

我们可以调试同一个库中的 c 函数(只要它们不在 .m 文件中),但显然没有 Objective-C 代码,甚至任何 .m 文件中的 c 代码。

当我尝试手动设置断点时,( break set -n ),我得到: WARNING: Unable to resolve breakpoint to any actual locations.

代码确实被调用,可信赖的记录器确认了这一点。

我的直觉是,调试信息会在某个地方丢失:我们正在构建一个静态库,然后是另一个静态库(“框架”样式),最后我们将其链接到我们的应用程序中。是的,这很复杂,但是,历史原因,你知道。

我试图检查第一个 .a 文件以查看发生了什么,但是当我尝试将其加载到 lldb 时我必须创建一个目标。两种架构的目标创建都失败了:

target create -d --arch i386 libFoo.a
error: 'libFoo.a' doesn't contain the architecture i386

target create -d --arch armv7 libFoo.a<br/>
error: 'libFoo.a' doesn't contain any 'remote-ios' platform architectures: arm64, armv7, armv7f, armv7k, armv7s, armv7m, armv7em, armv6m, armv6, armv5, armv4, arm, thumbv7, thumbv7k, thumbv7s, thumbv7f, thumbv7m, thumbv7em, thumbv6m, thumbv6, thumbv5, thumbv4t, thumb

lipo -info libFoo.a
Architectures in the fat file: libFoo.a are: armv7 i386

有没有人知道如何最好地解决这个问题?该代码肯定是链接的,可以工作,但是 lldb 不能设置断点。

非常感谢

附录:

我创建了我能想到的最简单的设置,但我看到了非常非常奇怪的结果:

如果我尝试查找某些东西,有些会返回文件和行号,有些则不会:

image lookup -s Foo::faz()
1 symbols match 'Foo::faz()' in […]/Build/Products/Debug-iphoneos/Test.app/Test:
Address: Test[0x00010334] (Test.__TEXT.__text + 22060)
Summary: Test'Foo::faz() at Foo.cpp:858
image lookup -s FazBar
1 symbols match 'FazBar' in […]/Build/Products/Debug-iphoneos/Test.app/Test:
Address: Test[0x00038eb4] (Test.__TEXT.__text + 188844)
Summary: Test'FazBar

尝试在相应的文件中设置断点会产生预期的结果:

(lldb) break set -f Foo.cpp -l 877
Breakpoint 5: where = Test'Foo::faz() + 76 at Foo.cpp:877, address = 0x000cb380
(lldb) break set -f bar.c -l 585
Breakpoint 6: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.

我如何深入 .a 文件以查看为什么找不到某些文件?

最佳答案

嗯,有人(实际上不是我,有一个绝对聪明的想法来设置GCC_GENERATE_DEBUGGING_SYMBOLS = NO某处隐藏得很深。

设置为yes,好吧,你猜对了,问题就解决了

亚历克斯

关于ios - 为什么我不能在我的库中设置断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22911097/

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