1

バイナリ ファイルの情報を使用してシンボリック化したクラッシュ ログ ファイルがあります。クラッシュ ログがこの特定のバイナリに関連していることを確認しました。C# レベルのスタック トレースを取得することもできます。

$atos -arch armv7 -o 'dev.app'/'dev' 0x00156ac0
m_Action_Spin_MakeChips_Cell_double_double_ulong_System_Collections_Hashtable_System_Collections_Generic_List_1_Chip (in dev) + 1316

ただし、その方法で取得したスタック トレースは意味がありません。これらのメソッドは互いに呼び出さず、関連もありません。いくつかの中間スタック トレース フレームが欠落している可能性がありますか? そのように私のコードのコンテキストでは理にかなっている可能性があります。

アップデート

私が持っている 2 つのクラッシュ ログで、非常に奇妙なことに気付きました。テスト担当者は、両方のテストで同じシナリオを説明しました。それらの1つは次のようになります。

0   dev                             0x00cbff6c 0x7c000 + 12861292
1   dev                             0x00bd4810 0x7c000 + 11896848
2   dev                             0x01379838 0x7c000 + 19912760
3   dev                             0x0141ba70 0x7c000 + 20576880
4   dev                             0x0141bbf4 0x7c000 + 20577268
5   dev                             0x0141fe68 0x7c000 + 20594280
6   dev                             0x01421d7c 0x7c000 + 20602236
7   dev                             0x013899cc 0x7c000 + 19978700
8   dev                             0x0138a264 0x7c000 + 19980900
9   dev                             0x013a59e0 0x7c000 + 20093408
10  dev                             0x01379fa4 0x7c000 + 19914660
11  libsystem_c.dylib               0x3aa5be90 0x3aa23000 + 233104
12  libsystem_c.dylib               0x3aa272dc 0x3aa23000 + 17116
13  dev                             0x002ea644 0x7c000 + 2549316
14  dev                             0x002ea3ec 0x7c000 + 2548716
15  dev                             0x002e8688 0x7c000 + 2541192
16  dev                             0x002e8688 0x7c000 + 2541192
17  dev                             0x00156ac0 0x7c000 + 895680
18  dev                             0x002e8688 0x7c000 + 2541192
19  dev                             0x0026a248 0x7c000 + 2024008
20  dev                             0x002fa25c 0x7c000 + 2613852
21  dev                             0x002f8f54 0x7c000 + 2608980
22  dev                             0x0114bbac 0x7c000 + 17628076
23  dev                             0x0114b7c4 0x7c000 + 17627076
24  dev                             0x0114b780 0x7c000 + 17627008
25  dev                             0x01140b38 0x7c000 + 17582904
26  dev                             0x01140b64 0x7c000 + 17582948
27  dev                             0x010977ec 0x7c000 + 16889836
28  dev                             0x01097794 0x7c000 + 16889748
29  dev                             0x0111d578 0x7c000 + 17438072
30  dev                             0x00f37954 0x7c000 + 15448404
31  dev                             0x00cc2e94 0x7c000 + 12873364
32  QuartzCore                      0x3454c094 0x34511000 + 241812
33  QuartzCore                      0x3454bfec 0x34511000 + 241644
34  IOMobileFramebuffer             0x367a3fd4 0x3679f000 + 20436
35  IOKit                           0x33546446 0x33543000 + 13382
36  CoreFoundation                  0x329295d8 0x3289d000 + 574936
37  CoreFoundation                  0x32934170 0x3289d000 + 618864
38  CoreFoundation                  0x32934112 0x3289d000 + 618770
39  CoreFoundation                  0x32932f94 0x3289d000 + 614292
40  CoreFoundation                  0x328a5eb8 0x3289d000 + 36536
41  CoreFoundation                  0x328a5d44 0x3289d000 + 36164
42  GraphicsServices                0x364582e6 0x36453000 + 21222
43  UIKit                           0x347bb2fc 0x34764000 + 357116
44  dev                             0x00082048 0x7c000 + 24648
45  dev                             0x00081f94 0x7c000 + 24468

もう一方は次のようになります。

0   dev                             0x00cf7f6c 0xb4000 + 12861292
1   dev                             0x00c0c810 0xb4000 + 11896848
2   dev                             0x013b1838 0xb4000 + 19912760
3   dev                             0x01453a70 0xb4000 + 20576880
4   dev                             0x01453bf4 0xb4000 + 20577268
5   dev                             0x01457e68 0xb4000 + 20594280
6   dev                             0x01459d7c 0xb4000 + 20602236
7   dev                             0x013c19cc 0xb4000 + 19978700
8   dev                             0x013c2264 0xb4000 + 19980900
9   dev                             0x013dd9e0 0xb4000 + 20093408
10  dev                             0x013b1fa4 0xb4000 + 19914660
11  libsystem_c.dylib               0x3aa5be90 0x3aa23000 + 233104
12  libsystem_c.dylib               0x3aa272dc 0x3aa23000 + 17116
13  dev                             0x00322644 0xb4000 + 2549316
14  dev                             0x003223ec 0xb4000 + 2548716
15  dev                             0x00320688 0xb4000 + 2541192
16  dev                             0x00320688 0xb4000 + 2541192
17  dev                             0x0018eac0 0xb4000 + 895680
18  dev                             0x00320688 0xb4000 + 2541192
19  dev                             0x002a2248 0xb4000 + 2024008
20  dev                             0x0033225c 0xb4000 + 2613852
21  dev                             0x00330f54 0xb4000 + 2608980
22  dev                             0x01183bac 0xb4000 + 17628076
23  dev                             0x011837c4 0xb4000 + 17627076
24  dev                             0x01183780 0xb4000 + 17627008
25  dev                             0x01178b38 0xb4000 + 17582904
26  dev                             0x01178b64 0xb4000 + 17582948
27  dev                             0x010cf7ec 0xb4000 + 16889836
28  dev                             0x010cf794 0xb4000 + 16889748
29  dev                             0x01155578 0xb4000 + 17438072
30  dev                             0x00f6f954 0xb4000 + 15448404
31  dev                             0x00cfae94 0xb4000 + 12873364
32  QuartzCore                      0x3454c094 0x34511000 + 241812
33  QuartzCore                      0x3454bfec 0x34511000 + 241644
34  IOMobileFramebuffer             0x367a3fd4 0x3679f000 + 20436
35  IOKit                           0x33546446 0x33543000 + 13382
36  CoreFoundation                  0x329295d8 0x3289d000 + 574936
37  CoreFoundation                  0x32934170 0x3289d000 + 618864
38  CoreFoundation                  0x32934112 0x3289d000 + 618770
39  CoreFoundation                  0x32932f94 0x3289d000 + 614292
40  CoreFoundation                  0x328a5eb8 0x3289d000 + 36536
41  CoreFoundation                  0x328a5d44 0x3289d000 + 36164
42  GraphicsServices                0x364582e6 0x36453000 + 21222
43  UIKit                           0x347bb2fc 0x34764000 + 357116
44  dev                             0x000ba048 0xb4000 + 24648
45  dev                             0x000b9f94 0xb4000 + 24468

システム ライブラリのアドレスは同じですが、アプリ自体のアドレスは異なります。ただし、「dev」行では、アドレス シフトが同じであることに気付くかもしれません。ただし、そのうちの 1 つはファイル アドレスとして 0x7c000 を持ち、もう 1 つは 0xb4000 を持ちます。同じ番号の行からatosアドレスを与えると、結果が異なり、どちらが正しいかわかりません。

レジスタも非常によく似ています。

Thread 0 crashed with ARM Thread State (32-bit):
    r0: 0x00000001    r1: 0x3c58cb88      r2: 0x0ae7ce50      r3: 0x017a3bc0
    r4: 0x2fd86088    r5: 0x21692590      r6: 0x00000002      r7: 0x2fd85f70
    r8: 0x00000001    r9: 0x02270000     r10: 0x1ea63808     r11: 0x2fd85f78
    ip: 0x016ed6a4    sp: 0x2fd85f70      lr: 0x011be598      pc: 0x00cbff6c
  cpsr: 0x60000010

最初と

Thread 0 crashed with ARM Thread State (32-bit):
    r0: 0x00000001    r1: 0x3c58cb88      r2: 0x0b8010c0      r3: 0x017dbbc0
    r4: 0x2fd4e088    r5: 0x205cc820      r6: 0x00000002      r7: 0x2fd4df70
    r8: 0x00000001    r9: 0x0a158900     r10: 0x1d26da08     r11: 0x2fd4df78
    ip: 0x017256a4    sp: 0x2fd4df70      lr: 0x011f6598      pc: 0x00cf7f6c
  cpsr: 0x60000010

これも類似性を示唆しています。

Update2

最初のアドレス列のアドレス(異なるアドレス)をatosに使用すると、おそらく間違いを犯したと言われました。これらのアドレスは、システム メモリ空間にあると想定されています。一方、最後のアドレスシフト (同じ) は、ファイル空間にあると想定されています。ただし、それらを16進数に変換してatosで使用すると、得られる関数とメソッドはまだ意味がありません。

4

1 に答える 1

0

私の最後の更新は、答えへの正しい方法でした。結局のところ、アドレス シフトを使用する必要がありましたが、スライドによって移動する必要もありました。これは、プロセスを少し自動化するために使用したの関数です。役に立つかもしれません。

function symb
    echo "obase=16; " (math $argv+16384)|bc|atos -arch armv7 -o "dev.app/dev"
end

(16384 は、私の実行可能ファイルのスライドの 10 進形式です)

于 2013-10-23T12:20:47.077 に答える