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

标签 iphone xcode

我今天一直在查看 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/

相关文章:

iphone - iPhone 上的 FTP 与 HTTP 上传

iphone - 进行界面定位时图像弹跳

ios - 如果已经下载了应用程序,则如何打开它;否则,请打开iTunes下载页面

ios - Xcode 4.6 和 Xcode 5 安装在一起

ios - Objective-c:自定义键盘/输入 View 上的 Siri

ios - 如何在一个部分中组合相同的日期对象?

iphone - 在 PopOver 中呈现图像选择器

iphone - 无法在 UIDatepicker 中解锁之前的月份和日期并且还显示 ios 中的时间

objective-c - 将 xcode 更新到 4.5 后存档应用程序时出错

ios - 为什么在尝试删除 TableView ios 中的部分时出现断言错误