Auto-continuing a stop hook by adding a "continue" command to the hook didn't work very well for multi-threaded programs. The first hook in kept all the others from running, so the behavior was unpredictable.
Also, the stop hooks were running in synchronous mode, which meant that 'continue' in a stop hook would start nesting hook execution, which they were not designed to do.
This patch forces Async execution for the stop-hooks, and adds an auto-continue flag.
I also made it possible to add more than one command at a time to the stop hook by repeating the -o command. I can't remember why I thought it was a good idea originally to have only ONE --one-liner option here & in breakpoint commands, etc. It's really convenient to be able to build these on a single line.
Also fixed up a few tests. The plain stop-hook tests were failing for me, even though I didn't change any relevant output. Adding the 'interpreter.echo-comment-commands false' made them start passing again...
I didn't uncomment the UNSUPPORTED on Linux for stop-hook-threads.test, I'd appreciate somebody giving this a whirl there first to see if this works now.
BTW, this check is fairly dodgy, because in the case of two threads hitting a breakpoint simultaneously, we will get 4 stop reasons instead of two ("thread list" will be executed twice, and each instance will print the stop reason for both threads). It might be better to replace "thread list" with a different command, or add synchronization to the test to prevent two threads from hitting the breakpoint at once, depending on what we want to test.