Compiler-generated thunk routines are currently emitted using S_GPROC32_ID symbols. This causes Visual Studio to believe the thunk is user code, and when stepping into them Visual Studio opens a "Source Not Found" window because the thunk is correlated with source line zero (0).
By emitting these as S_THUNK32 symbols instead, Visual Studio will recognize these as compiler-generated thunks and step through them into the user code they call.
This initial support only handles standard thunk ordinals.
This throws away all the local variables and inlined call sites in the thunk. I guess that's good enough for -O0, and optimized debug info is best effort anyway, but it's worth a comment, either here or at the point where we return early for thunks.