Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

324
Visualizações
¿Cómo recuperar el verdadero seguimiento de llamadas de la rutina?

Este es un problema dolorosamente familiar para cualquiera que trabaje con API asíncronas: cuando su llamada encuentra una falla, el subproceso privado de la biblioteca asíncrona lo detecta, crea un objeto de excepción y lo pasa a su devolución de llamada. La única información que vale un centavo en esa excepción es su mensaje y posiblemente su tipo. El seguimiento de la pila no tiene valor.

Cruce eso con la forma en que Google Play informa los bloqueos de la aplicación: el mensaje se elimina y todo lo que obtiene es el seguimiento de la pila. Ahora no tienes con qué ir. Solo sabe que su aplicación tiene un error que no detectó en sus propias pruebas.

Las corrutinas de Kotlin al menos nos dan alguna esperanza de que esto podría mejorarse. El seguimiento de la pila coroutine está conceptualmente allí, solo que es difícil de extraer. Sin embargo, actualmente los rastros de pila que obtenemos son los mismos inútiles que describí anteriormente.

Estoy familiarizado con el módulo kotlinx-coroutines-debug y veo que hay algunas disposiciones en el lado de la implementación para recrear el seguimiento de la pila coroutine, pero ¿cómo puedo hacer uso de estas instalaciones en una aplicación de producción instalada en el teléfono inteligente de mi usuario?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

En primer lugar, la función está rota en este momento. Si se soluciona el error, probaría System.setProperty(DEBUG_PROPERTY_NAME,DEBUG_PROPERTY_VALUE_ON) .

over 4 years ago · Santiago Trujillo Relatório

0

Me enfrenté al mismo problema. La biblioteca de depuración de rutinas de Kotlin no me ayudó de ninguna manera. Por lo tanto, después de estudiar la implementación de las rutinas, escribí mi propia solución basada en la generación de código de bytes y la API MethodHandle. Es compatible con JVM 1.8 y Android API 26 o superior. Lo llamé Stacktrace-decoroutinator .

La razón por la que se pierde stacktrace es que cuando la corrutina se activa, solo se llama al último método de su pila de llamadas.

Mi biblioteca reemplaza la implementación del despertar coroutine. Genera clases en tiempo de ejecución con nombres que coinciden con toda la pila de llamadas de rutina. Estas clases no hacen nada excepto llamarse entre sí en la secuencia de la pila de llamadas coroutine.

Por lo tanto, si la corrutina lanza una excepción, imitan la pila de llamadas real de la corrutina durante la creación del seguimiento de la pila de excepciones.

over 4 years ago · Santiago Trujillo Relatório

0

El complemento de Kotlin para IntelliJ IDEA brinda esta posibilidad desde la versión 1.4 (para las versiones 1.3.8 o posteriores de kotlinx-coroutines-core ).

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda