<div dir="auto"><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">Karoly Balogh (Charlie/SGR) <<a href="mailto:charlie@scenergy.dfmk.hu">charlie@scenergy.dfmk.hu</a>> schrieb am Mi., 15. Mai 2019, 15:25:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
On Wed, 15 May 2019, James Richters wrote:<br>
<br>
> Has anyone encountered anything like this before or know how I can make<br>
> sure I always get the maximum amount of debugging info when my program<br>
> crashes?<br>
<br>
Is it a subthreaded app?<br>
<br>
The only case when I noticed something similar (under Linux though), when<br>
a certain subthread throws an exception, it just silently disappears<br>
without any further handling. It doesn't throw any exception, unless you<br>
wrap the entire Execute method in a try-except.<br>
<br>
(Sidenote: I've been pondering for a while if I should report this as a<br>
bug. I think the RTL should put a try-except around there, to show a<br>
stacktrace on unhandled exceptions, just like the main thread dying does,<br>
but who knows which Delphi de-facto standard behavior would that violate,<br>
so meh...)<br></blockquote></div><div dir="auto"><br></div><div dir="auto">That is already the case at least for TThread descendants as can be seen in rtl/unix/tthread.inc, ThreadFunc. This is needed for the FatalException field. </div><div dir="auto"><br></div><div dir="auto">One could argue whether the BeginThread API should protect the function as well though... 🤷‍♀️</div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div>