iostクラッシュダンプのスタックトレース内のオフセットを、otoolの出力としてバイナリの逆アセンブリ内のオフセットと一致させるのに問題があります。iOSクラッシュダンプ内のオフセットを逆アセンブルしたバイナリに一致させる
誰でも私がこれらをどのようにして一致させるかを誰でも確認できますか?私はクラッシュダンプで行を取得する場合たとえば、:
0 myapp 0x00005b0a 0x1000 + 19210
私は、バイナリファイルに問題のある命令のオフセット0x5b0a、0x4b0a ....または何か他のことを期待するでしょうか?ヘッダ情報のその復号において
は、また、(実際のコードは、ファイル内のオフセット0x0000224cから始まる)、例えば、この情報を与えるコマンドotool:
Section
sectname __text
segname __TEXT
addr 0x0000224c
size 0x00063ad2
offset 4684
align 2^2 (4)
reloff 0
nreloc 0
type S_REGULAR
attributes PURE_INSTRUCTIONS SOME_INSTRUCTIONS
reserved1 0
reserved2 0
だから、私は100%確実ではないました私はこれを正しく解釈していましたが、ファイル内の+ 0x224cのコードはメモリ内のオフセット0x124cで終了すると言われていますが、次にこれがどのように0x1000。
オフセット0x5b0a、0x4b0a、0x6b0aのどちらの命令も、実際の命令では意味がありません。分岐指示を指す)。
(私が知っているのは、少なくともARMの初期版では、命令パイプラインのためにPCの値と対応するメモリアドレスの間に相違がありました。考慮に入れられていないオフセットを考慮に入れて、またはいずれにせよ、問題のブランチ命令がそのような違いが考慮されていないと指摘された1つの命令の両側のいくつかの命令を参照してください...)
誰でも光を放つことができますか?
単純に記号化できない理由はありますか? http://stackoverflow.com/questions/3832900/how-to-manually-symbolicate-ios-crash-to-view-crash-logs/8648232#8648232 –
私は*シンプル*私は持っていないので、記号化することはできませんシンボルファイル(コードは第三者によってコンパイルされます)。しかし、それが唯一の選択肢ならば、私は彼らがシンボルファイルを提供できるかどうか尋ねなければならないだろうと思う。したがって、オフセットを計算する方法がある場合は、この特定のケースでは私にとってより迅速なプロセスです。 –