Come stampare ad eccezione dello stack trace di Objective-C eccezioni con GNU runtime e senza GNUStep?
-
01-10-2019 - |
Domanda
Ho un app accumulo Objective-C su Linux con GCC 4.3 utilizzando non quadro specifico (solo GNU-runtime). Sto usando eccezioni Objective-C (tramite flag di compilazione dei '-fobjc-eccezioni').
Ora voglio stampare la traccia dello stack di tale eccezione di una, quando ho preso un po '. O che cosa mi farebbe ancora più felice:. Ha messo la traccia in una stringa o qualche tipo di struttura per valutare o stamparlo in seguito
Come può essere raggiunto?
Soluzione 2
Dal momento che non è più la conoscenza è fluttuante nel, qui è quello che ho scoperto da sola:
Almeno sotto Linux posso usare la GNU estensioni backtrace
e backtrace_symbols
per ottenere gli indirizzi dello stack di chiamate e le corrispondenti simboli. Questo aiuta un po ', ma è lontano dalle informazioni che gdb dà. Non ci sono né numeri di linea né valori argomenti.
Con l'estensione dladdr
glibc posso ottenere informazioni simili ma non altrimenti.
Questo è ancora non è esattamente quello che sto cercando, ma nessuno ha ottenuto così clausola - così avrei accettato la mia risposta personale:. (
Altri suggerimenti
NSArray * stack = [NSThread callStackSymbols];
Può essere utile.