So in all case this is a bug and need to be reported/fixed.
as for
Vcl.Forms.TApplication.ProcessMessage being the first/oldest reported by the debugger, these is no more clearer report that there is a bug and it concern the stack itself or the debugger, like above either the debugger had failed or the stack already damaged/corrupted byt the
RTL/
VCL itself.
Also
Vcl.Forms.TApplication.ProcessMessage is Delphi code and it is not an
OS callback function, hence should and must have another code calling it from within Delphi code and that code (procedure/function) should be on the stack too, as simple as that.
The problem itself is a bug, no argument. But the debugger is not faulty, the stack is not corrupted. It correctly reports the location at which the
exception was raised. That is just not the location that is at the root of the problem, but that is fairly often the case.