<div dir="ltr">Having stack traces on critical faults is an &quot;enterprisey&quot; feature that I like.  It would be nice if swift allowed customization of what happened on a trap (like array out of bounds), so it dumped the thread&#39;s stack trace to stderr before exiting.<div><br></div><div>I can simulate the desired behavior by installing a signal handler for SIGILL, and launch a script that fires up a debugger which attaches to the process and dumps the stack trace(s) before terminating it.</div><div><br></div><div>I wrote it in C pretty easily and it is here: <a href="https://gist.github.com/kjpgit/9a1059a5960694767193">https://gist.github.com/kjpgit/9a1059a5960694767193</a><br></div><div><div><br></div><div>It&#39;s just a small pain to build and link the C code to each swift project.  So my question is, can I use pure swift code for the signal handling instead of that C shim.</div><div><br></div><div>1)  Does swift on linux support an atomic_fetch_add() equivalent out of the box (or some other signal-safe serialization)</div><div>2) Any other concerns using swift code in a signal handler.  I&#39;d just be using Glibc system calls, and any char data would be pre-allocated.</div><div><br></div><div>Thanks</div>







</div></div>