Compiling an AVR8 assembly code with conditional directives (as #if... #else... #endif, for example) is done correctly when their number is relatively small.
When this number exceeds a certain limit (I didn’t test yet to find the value of this limit) the compiler (for debugging) fails to map all active instruction lines. I am not sure if this applies to all forms of conditional directives or not.
Although I have no clear idea how the compiler works, it seems that the size of the buffer (or stack, perhaps) is somehow small to handle a rather big number of conditional directives. If this is the case, perhaps doubling its size will be enough.
Now, to debug a code, I try removing temporarily (and manually) the conditional directives from where the compiler fails to map properly the remaining active lines.