Hello,
The same code do not show threads inside qemu -s, only show single-per-core thread.
I assume that qemu build-in gdb stub (which was recommended to me by Norman) do not able to see new threads for NOVA, probably it requires some special call from inside OS to inside qemu during creation of thread (may be because thread is not "native kind", native processes only has separate set of TLB/etc related to virtual space, - I think that this could be a reason - while I did not check it).
for debugging threads, Qemu -s is indeed not very useful per se.
In many debugging situations, however, it is often possible to work around this limitation. In [1] I have documented some life hacks that I find useful. In particular by adding an infinite loop at a point of interest in the code and attaching GDB once this loop is entered, one can observe the state of the thread that is currently spinning. In many situations that's all what's needed to prove or rule out a suspicion.
[1] https://genode.org/documentation/articles/sel4_part_1#A_root_task_for_exerci...
Norman