我想用[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
这是正确的方法吗?我只接到来自第三方应用程序的电话。但我只是在我自己的方法中记录它,它应该从我自己的实现中调用。