Sto riscontrando problemi nell'abbinare gli offset nelle tracce di stack degli arresti anomali di iOS con offset nello smontaggio del file binario come output di otool.Corrispondenza di offset in iOS crash dump in binario smontato
Qualcuno può confermare come in linea di principio li abbino. Per esempio, se ho una linea nella crash dump:
0 myapp 0x00005b0a 0x1000 + 19210
dovrei aspettare l'offset dell'istruzione incriminata nel file binario di essere 0x5b0a, 0x4b0a .... o qualcosa d'altro?
Nella sua decodificazione delle informazioni di intestazione, otool dà anche, ad esempio, queste informazioni (il codice vero e dalle ore 0x0000224c offset nel file):
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
Quindi, non ero sicuro al 100% Stavo interpretando correttamente, ma sembra che il codice, con + 0x224c nel file, finisca con l'offset 0x124c in memoria, ma poi non ero esattamente sicuro di come fosse adattato, ad esempio, alla posizione 0x1000.
Il problema che ho è dato, ad esempio, dall'offset 0x5b0a, né l'istruzione lì né a 0x4b0a né a 0x6b0a ha senso come l'effettiva istruzione in questione (incluso il fatto che ad es. 't indicare le istruzioni di ramo).
(so che, almeno su precedenti incarnazioni di ARM, c'era una discrepanza tra il valore del PC e l'indirizzo di memoria corrispondente a causa della pipeline. Ero assumendo che tale differenza si svolgerà in considerazione negli offset riportati nel crash dump, o in ogni caso, vedrei le istruzioni di ramo in questione alcune istruzioni su entrambi i lati di quella puntata a se tale differenza non è stata presa in considerazione ...)
Qualcuno può far luce?
C'è una ragione per cui non si può semplicemente simboleggiare? http://stackoverflow.com/questions/3832900/how-to-manually-symbolicate-ios-crash-to-view-crash-logs/8648232#8648232 –
Non posso * semplicemente * simbolizzare perché non ho il file di simboli (il codice è compilato da una terza parte). Tuttavia, se questa è l'unica opzione, suppongo che dovrò chiedere se possono fornire il file di simboli. Quindi è più che se c'è un modo per me per calcolare l'offset, è un processo più veloce per me in questo caso particolare. –