4

[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

これは正しいアプローチですか?サードパーティのアプリケーションからしか電話がかかりません。しかし、私はこれを自分のメソッドに記録しているだけで、自分の実装から呼び出す必要があります。

4

0 に答える 0