2016-09-25 9 views
2

В Android Studio я запускаю приложение в режиме отладки, которое загружает его в эмулятор. Затем я просматриваю приложение, нажимая через пользовательский интерфейс, чтобы мои пользовательские методы вызывались для создания трассировки стека. Я нажимаю паузу, заглядываю в окно Debugger-> threads and frames, но он показывает только общие рамки платформы, и ничего моего. Когда я устанавливаю точку прерывания, мои кадры появляются, но почему это не работает, когда я просто нажимаю паузу? почему бы все рамки не были видны до этого момента?Как я могу найти strackrace, который включает в себя кадры, созданные моими методами?

Итак, как я могу увидеть strackrace, который также включает в себя кадры, созданные моими методами, не поставив точку останова, если не так, почему это невозможно?

ответ

1

Постарайтесь подсчитать, сколько времени прошло с тех пор, как вы взаимодействовали с вашим пользовательским интерфейсом, и пока не нажали кнопку «Пауза» отладчика. Этого времени вполне достаточно, чтобы оставить свои собственные методы и вернуться к фреймворк-коду, который вызвал ваши слушатели/обратные вызовы.

Чтобы увидеть трассировки стека без отладчика с участием просто использовать:

new Throwable("tada!!!").printStackTrace(); 

Тогда просто проверить выход LogCat. В качестве альтернативы вы можете сохранить Throwable и позже распечатать трассировку стека. Чтобы преобразовать его в строку - используйте Log.getStackTraceString().

+0

Так что, чтобы отладочное поведение было «встроенным», вам необходимо вмешаться в процесс – microwth