Your asm is between the two printfs. But I don't think the debugger can do that - it would need to move all the following code along by one to make space to insert it, which would break everything. So I presume that, if the debugger works in this way at all, then it must replace an existing instruction with the "brk". When it continues it must temporarily put the original instruction back. In this case, you don't need to increase the pc value.
I know that doesn't answer your question, and I have no idea how the debugger actually does this.
Source for lldb should be available.
Topic:
Developer Tools & Services
SubTopic:
General
Tags: