Turns out doing a CTRL+Break (or equivalent kill <signal> <pid> on *nix) programmatically is a bit harder than I thought. Â This thread talks about ways to do it, but the easiest was to use the Tempus library which has a lot of threading tools, including a simple
ThreadDump.dumpThreads(yourPrintstream);
to get a stacktrace of running threads in a current environment.