Eu recebo o mesmo problema.
Eu encontro o mesmo problema. Alguém conserta?
Eu encontro o mesmo problema, mas por quê?
Como reproduzir o problema?
KSCrash define o cursor imageAddress para 0 na função kssymbolicator_symbolicate() ao analisar a tabela de símbolos sem Depurar Símbolos (Xcode --> configurações de compilação --> Estilo de tira --> Símbolos de depuração)
Boa sorte ...
Eu encontro o mesmo problema. Alguém conserta?
Todos os três relatórios fornecidos pelo autor do problema estão relacionados a exceções C++. Alguém recebeu falhas não-C++ sem backtrace?
@bamx23 #205 mostra por que as falhas do C++ não podem obter a pilha com falha. eu tenho uma pergunta, até agora, o problema foi resolvido? eu ainda posso obter uma pilha vazia quando exceções C++ em estruturas incorporadas?
Vou dar uma olhada neste problema na próxima semana
@ bamx23 eu recebo uma pilha muito vazia, "diagnóstico": "Tentativa de desreferenciar o ponteiro nulo."
vazio.txt
Se atender a pilha vazia para exceção C++, pode encontrar o motivo desse problema. https://github.com/kstenerud/KSCrash/issues/205
Desculpe, teria sido melhor dizer "próximo mês".
Eu verifiquei o KSCrash na falha do C++ no meu aplicativo de exemplo, mas os encadeamentos estavam ok. Alguém poderia fornecer um código de exemplo que reproduza o problema?
@chzhij5 irmão, qual versão do ks você está usando? 1.15.8?
Oi! Investigamos o problema e as possíveis soluções em nossa equipe. Há um:
Durante o processo de instalação do KSCrashMonitor_CPPException, podemos usar um "hack" descrito e implementado em https://github.com/facebook/fishhook. Ele permite ligar qualquer chamada de função do binário vinculado dinamicamente. Então nós conectamos __cxa_throw
para todos os binários carregados.
Se alguma biblioteca tiver um símbolo fraco __cxa_throw
(como o KSCrash tem atualmente), nós a chamaremos da mesma forma que fazemos agora. A ordem seria como [fishhooked one] -> [weak one] -> [libc++abi one]
.
O único problema que não pode ser resolvido é se algum binário tiver um símbolo __cxa_throw
forte nele, não podemos conectá-lo. Mas acho que não há opção para lidar com essa situação.
@kstenerud , o que você acha? Lemos sua postagem em stackoverflow e parece que a ideia acima pode resolvê-lo, pelo menos parcialmente.
Podemos ir em frente e criar um pull-request onde o anzol será uma dependência do KSCrash (ou subespecificação do KSCrash como 'KSCrash/Recording/ImprovedCPPExceptionsHandling').
[fishhooked one] -> [weak one] -> [libc++abi one]
.
Na verdade, podemos chamar [libc++abi one]
de [fishhooked one]
caso [weak one]
não chame, isso satisfaça os requisitos de @kstenerud .
Isso soa bem, vamos tentar na próxima semana em nosso aplicativo interno.
Aqui o PR: #375
Comentários muito úteis
Vou dar uma olhada neste problema na próxima semana