Как восстановить истинный след вызова сопрограммы? - PullRequest
0 голосов
/ 24 января 2019

Это до боли знакомая проблема для любого, кто работает с асинхронными API: когда ваш вызов сталкивается с ошибкой, частный поток библиотеки асинхронного поиска обнаруживает его, создает объект исключения и передает его вашему обратному вызову. Единственная информация, заслуживающая ни копейки в этом исключении, это его сообщение и, возможно, его тип. Трассировка стека ничего не стоит.

Сочетание того, что Google Play сообщает о сбоях приложения: сообщение удаляется, и все, что вы получаете, - это трассировка стека. Теперь вам нечего делать. Вы просто знаете, что в вашем приложении есть ошибка, которую вы не обнаружили при тестировании.

Сопрограммы Котлина, по крайней мере, дают нам надежду, что это можно сделать лучше. Концептуальная трассировка стека концептуально присутствует, ее просто сложно извлечь. Однако в настоящее время мы получаем те же самые стеки, которые я описал выше.

Я знаком с модулем kotlinx-coroutines-debug и вижу, что на стороне реализации есть некоторые положения для воссоздания трассировки стека сопрограмм, но как я могу использовать эти средства в производственное приложение установлено на смартфоне моего пользователя?

1 Ответ

0 голосов
/ 09 июля 2019

Прежде всего, все функции сломаны на данный момент.Если ошибка исправлена, я бы попробовал System.setProperty(DEBUG_PROPERTY_NAME,DEBUG_PROPERTY_VALUE_ON).

...