[NSThread callStackSymbols]
メソッド名に myを象徴したいと思います。私の主な問題は、ここで取得したログからメモリ アドレスを計算する方法がわからないことです。
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
これで、atos 呼び出しからデータを取得するための dsym ファイルとアプリケーション バイナリを取得できました。
xcrun atos -arch armv7 -o MY_APPLICATION 0x13C946
これは正しいアプローチですか?サードパーティのアプリケーションからしか電話がかかりません。しかし、私はこれを自分のメソッドに記録しているだけで、自分の実装から呼び出す必要があります。