gpt4 book ai didi

iphone - iPhone崩溃日志中的内存地址代表什么意思?

转载 作者:行者123 更新时间:2023-12-03 21:10:00 31 4
gpt4 key购买 nike

我今天一直在查看 iPhone 应用程序生成的崩溃日志:

Thread 0 Crashed:
0 libobjc.A.dylib 0x3002d7da 0x3002b000 + 10202
1 UIKit 0x31ec4abc 0x31e4d000 + 490172
2 UIKit 0x31ebd214 0x31e4d000 + 459284
3 UIKit 0x31ebcfac 0x31e4d000 + 458668

谁能告诉我十六进制地址的含义是什么? (当然是内存地址..)

我知道如何用符号来生成:

0   libobjc.A.dylib                 0x000027da objc_msgSend + 18
1 UIKit 0x00077abc -[UINavigationController _startDeferredTransitionIfNeeded] + 176
2 UIKit 0x00070214 -[UINavigationController pushViewController:transition:forceImmediate:] + 600
3 UIKit 0x0006ffac -[UINavigationController pushViewController:animated:] + 28

并从那里调试崩溃,但我很好奇;如果你采取

0x3002d7da 0x3002b000 + 10202

则:0x3002d7da = 0x3002b000 +(十进制)10202

这到底意味着什么?

我应该补充一点,我不是在寻找有关如何符号化的信息,谢谢!

编辑:对我来说也很奇怪的是,如果您比较前后符号版本,那么对于我编写的代码:

9   memleaktest                     0x00002ffe 0x1000 + 8190
becomes
9 memleaktest 0x00002ffe -[memleaktestViewController buttonOne] (memleaktestViewController.m:24)

有道理,但对于框架代码:

8   CoreFoundation                  0x307fe52c 0x307f8000 + 25900
becomes
8 CoreFoundation 0x0000652c -[NSObject(NSObject) release] + 24

地址和偏移量已更改?为什么会这样?

最佳答案

if you take
0x3002d7da 0x3002b000 + 10202
What does this signify exactly?

在这种情况下,“+”并不意味着加法。这句话告诉你的是:

  • 相关例程/库从地址 0x3002b000 开始
  • 堆栈跟踪中的代码行发生了 10202 个字节。
  • 这两个数字的总和 = 0x3002d7da

(换句话说,就像您所做的那样,0x3002d7da = 0x3002b000 + 10202。)

您可能关心的重要事情是被调用方法的起始地址。

但是,实际上,您可以忽略所有这些,因为它不像符号版本那么有用,符号版本为您提供源文件名和行号。

关于iphone - iPhone崩溃日志中的内存地址代表什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3851211/

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