Xcode breakpoint don't work inside dispatch_async block
It turns out that it was because of a 3rd party framework New Relic. After removing reference to the New Relic framework, we can then step inside the dispatch_async block.
So for any developer working on project that has a new relic plugin, you can temporary remove reference to the plugin and add it back later when your debugging id complete.
It took us a few days to find out , and we hope that this piece of information is helpful to everyone.
As it turns out, Grand Central Dispatch instrumentation can indeed prevent breakpoints within dispatch_async blocks. You can disable the GCD macros in your environment by adding the following to your prefix.pch file:
#ifdef DEBUG
#undef dispatch_async
#undef dispatch_sync
#undef dispatch_after
#undef dispatch_apply
#undef _dispatch_once
#endif