IOS çökme yığınlarının yığın izlerindeki ofsetleri, ikili dizinin otool tarafından çıkarılması sırasında ofsetlerle eşleştirilmesinde sorun yaşıyorum.iOS kilitlenme eşleşmelerinin eşleştirilmesi ikili dağıtılmış ikili dökümü
Prensip olarak bunları nasıl eşleştirdiğimi kimse anlayabilir mi? Öldüğü çöplükte bir çizgi olsun Örneğin,:
0 myapp 0x00005b0a 0x1000 + 19210
ben beklediğiniz 0x5b0a, 0x4b0a .... veya başka bir şey olması ikili dosyasında kusurlu talimatının ofset? başlık bilgileri kendi Kodçözmede
, otool da verir, örneğin, bu bilgiler (gerçek kod dosyasında ofset 0x0000224c başlar):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
Yani,% 100 emin değildi Bunu doğru bir şekilde yorumluyordum, ama dosyadaki + 0x224c'deki kodun bellekte 0x124c ofsetinde bittiğini ama sonra bunun nasıl yerleştirildiğini tam olarak bilmiyordum. 0x1000.
Verdiğim sorun, "0x5b0a" ofset, yani ne komut ne de 0x4b0a'da ne de 0x6b0a'da verilen komutun verilişidir (sözgelimi, örn. dal talimatlarını gösteriniz).
(en az ARM önceki incarnations üzerinde nedeniyle talimat boru hattına PC değerine karşılık gelen bellek adresi arasındaki farklılık bulunduğunu biliyoruz. Böyle bir fark alınacağı varsayarak oldu kilitlenme dökümünde bildirilen ofsetlerde veya herhangi bir oranda hesaba katılırsa, söz konusu branş talimatını, söz konusu farkın dikkate alınmaması durumunda işaret edilen tarafın birkaç yönergesini dikkate alacağım ...)
Herhangi biri ışık tutabilir mi?
sadece symbolicate edemez bir neden var mı? http://stackoverflow.com/questions/3832900/how-to-manually-symbolicate-ios-crash-to-view-crash-logs/8648232#8648232 –
ben * basitçe * symbolicate bende olmayan olamaz çünkü sembol dosyası (kod bir üçüncü tarafça derlenir). o zaman tek seçenek Ancak, ben onlar sembol dosyası sağlayabilirsiniz sormak gerekecek sanırım. Yani offset beni hesaplamak için bir yol varsa, bu özel durumda benim için daha hızlı bir süreç olduğunu daha fazla. –