Recentemente ho avuto dei problemi a cercare di simboleggiare un registro di crash di un'app per iOS. Per qualche motivo l'UUID del dSYM non è stato indicizzato in Spotlight. Dopo alcune ricerche manuali e una buona dose di incantesimi da linea di comando, sono riuscito a simboleggiare parzialmente il registro degli arresti anomali.È possibile simboleggiare il codice C++?
All'inizio pensavo che il dSYM potesse essere incompleto o qualcosa del genere, ma poi mi sono reso conto che le chiamate di metodo mancanti erano quelle che si verificano nel codice C++: questo progetto è un'app Objective-C che chiama in librerie C++ (tramite Objective-C++) che richiama il codice Objective-C (di nuovo, tramite codice Objective-C++). Le chiamate che mi mancano sono, in particolare, quelle che accadono in C++ land.
Quindi, la mia domanda è: c'è un modo in cui il processo di simbolizzazione può risolvere le chiamate di funzione del codice C++? Quali opzioni speciali devo impostare, se ce ne sono?
Lascia semplicemente gli indirizzi o ti dà qualcosa come _ZN7 ...? – C0deH4cker
no, non si tratta di funzioni di nome storpiato se ci si riferisce a questo. Si tratta di un indirizzo di base e un offset: 14 MyApp \t 0x001001bc 0xfe000 + 8636 15 MyApp \t 0x00100174 0xfe000 + 8564 –
se 'lldb' la vostra applicazione, si può smontare qualsiasi della vostra C++ metodi per nome? Hai un file binario statico o stai compilando tutto nel tuo progetto? – nielsbot