Often, you will find yourself debugging errors that happen inside a coroutine. Even when you have the steps to recreate a bug, following the code and making sense of what's happening may require some hard debugging work. In this section, we will cover good practices to debug your concurrent code, and I am sure that they will come in handy sometime.
Debugging
Identifying a coroutine in the logs
As you already know, you can create hundreds or thousands of coroutines, and those can be executed in one or more threads during their life cycle. Some of those coroutines will last for a long time, while others will be short-lived, maybe because they are tied to a temporary task. So, during debugging, it becomes a necessity to...