gpt4 book ai didi

ios - 符号化 iOS 崩溃地址返回不适当的结果

转载 作者:行者123 更新时间:2023-12-01 19:01:25 25 4
gpt4 key购买 nike

我最近花了几天时间来学习如何用自定义解决方案来表示我收到的崩溃的行号。

我已经确定我需要 .app 和 .dSYM 文件,我检查了 UUID,它与我遇到的崩溃相同,我还需要验证 UUID。

三个相同的 UUID 和架构是 arm64,我从我的 iPhone5S 上测试它的崩溃。

好的,假设我的堆栈跟踪中有两个与我的应用程序行相关。这是我得到的 JSON 的完整堆栈跟踪。

      "0   MyTestApp 0x10000efe8 0x100008000 + 28648",
"1 UIKit 0x1863d90c8 0x186390000 + 299208",
"2 UIKit 0x1863d905c 0x186390000 + 299100",
"3 UIKit 0x1863c2538 0x186390000 + 206136",
"4 UIKit 0x1863d8a5c 0x186390000 + 297564",
"5 UIKit 0x1863d86f0 0x186390000 + 296688",
"6 UIKit 0x1863d3388 0x186390000 + 275336",
"7 UIKit 0x1863a4b68 0x186390000 + 84840",
"8 UIKit 0x1863a2c58 0x186390000 + 76888",
"9 CoreFoundation 0x18339b044 0x1832d0000 + 831556",
"10 CoreFoundation 0x18339a3a0 0x1832d0000 + 828320",
"11 CoreFoundation 0x183398638 0x1832d0000 + 820792",
"12 CoreFoundation 0x1832d96d0 0x1832d0000 + 38608",
"13 GraphicsServices 0x188fbdc0c 0x188fb0000 + 56332",
"14 UIKit 0x18640afdc 0x186390000 + 503772",
"15 MyTestApp 0x10000e4f0 0x100008000 + 25840",
"16 libdyld.dylib 0x18fed3aa0 0x18fed0000 + 15008"

好的,现在我在包含 .app 和 .dSYM 文件的文件夹中运行 atos 命令来尝试查找和符号化内存地址。
xcrun atos -arch arm64 -o 'MyTestApp.app'/'MyTestApp' 0x10000efe8

但是这条线并没有完全返回我可以使用的东西。
-[AFHTTPRequestSerializer multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:] (in MyTestApp) (AFURLRequestSerialization.m:317)

我还在学习这个过程,但我相信 (in MyTestApp)应该是我的测试应用程序中可读的东西。

我用来使应用程序崩溃并测试如何符号化堆栈跟踪的代码如下。
113 - (IBAction)logUnhandledException:(UIButton *)sender
114 {
115 void (*nullFunction)() = NULL;
116 nullFunction();
117 }

编辑:
我有 "image_size": "0xa8000""image_base_address": "0x100008000" .

我不应该得到一些关于这个方法和行号的信息(如果可行的话)吗?

任何帮助和评论表示赞赏。

谢谢你。

最佳答案

当您想要符号化使用 -l 标志之后的加载地址(第二个地址,最好始终使用框架/库的图像基地址,但到目前为止这从未改变过)之后使用所有符号这个框架的地址,架构和你想要符号化的框架的相应 iOS 版本,或者如果它是你的应用程序的行,那么使用 dSYM 文件,例如对于 iOS 8.1.1 的 UIKit 符号

xcrun atos -arch arm64 -o ~/Library/Developer/Xcode/iOS DeviceSupport/8.1.1 (12B436)/Symbols/System/Library/Frameworks/UIKit.framework/UIKit -l <load_address> <symbols_addressess> ...

对于您自己的应用线

xcrun atos -arch arm64 -o MyApp.app.dSYM/Contents/Resources/DWARF/MyApp -l <load_address> <symbols_addressess> ...

你会得到所有适当的结果。

关于ios - 符号化 iOS 崩溃地址返回不适当的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22691579/

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