4

我想用[NSThread callStackSymbols]我的方法名称来表示我。我的主要问题是,我不知道如何从我得到的日志中计算内存地址。

0   MY_APPLICATION                       0x000f1ca3 MY_APPLICATION + 306339
1   MY_APPLICATION                       0x000b187b MY_APPLICATION + 43131
2   MY_APPLICATION                       0x000f39d5 MY_APPLICATION + 313813
3   MY_APPLICATION                       0x000f390f MY_APPLICATION + 313615
4   MY_APPLICATION                       0x002d1947 MY_APPLICATION + 2271559
5   libdispatch.dylib                   0x3bf740c3 <redacted> + 10
6   libdispatch.dylib                   0x3bf740af <redacted> + 22
7   libdispatch.dylib                   0x3bf769a9 _dispatch_main_queue_callback_4CF + 268
8   CoreFoundation                      0x316f95b1 <redacted> + 8
9   CoreFoundation                      0x316f7e7d <redacted> + 1308
10  CoreFoundation                      0x31662471 CFRunLoopRunSpecific + 524
11  CoreFoundation                      0x31662253 CFRunLoopRunInMode + 106
12  GraphicsServices                    0x363962eb GSEventRunModal + 138
13  UIKit                               0x33f17845 UIApplicationMain + 1136
14  MY_APPLICATION                       0x000ac65f MY_APPLICATION + 22111
15  libdyld.dylib                       0x3bf88ab7 <redacted> + 2
(0xf1cbd 0xb187b 0xf39d5 0xf390f 0x2d1947 0x3bf740c3 0x3bf740af 0x3bf769a9 0x316f95b1 0x316f7e7d 0x31662471 0x31662253 0x363962eb 0x33f17845 0xac65f 0x3bf88ab7)

我正在尝试从第 0 行计算内存地址,如下所示:

0x000f1ca3 + 4ACA3(来自 MY_APPLICATION + 306339)= 0x13C946

现在我得到了我的 dsym 文件和应用程序二进制文件来从 atos 调用中获取数据。

xcrun atos -arch armv7 -o MY_APPLICATION 0x13C946

这是正确的方法吗?我只接到来自第三方应用程序的电话。但我只是在我自己的方法中记录它,它应该从我自己的实现中调用。

4

0 回答 0