Linux kernel can boot mostly on its own by probing the hardware and using the linked-in drivers. The NT kernel requires an environment such as UEFI or legacy BIOS and relies on it, for example, to load additional drivers. It also expects to be loaded in a certain manner by the pre-loader (winload.efi) while Linux has less strict requirements.
This is why ...
bFLT format is mostly used by the uCLibc based tool chains and even there the build happens to ELF which is then converted to bFLT, so it’s unlikely you’ll find a GDB which supports bFLT directly. However, you may be able to debug it by attaching to the QEMU’s GDB port (target remote command).
From the man page:
The addr argument to shmat specifies a pointer value indicating the
address at which the memory segment is to be attached. If addr is NULL
, the segment will be attached at an address selected by the system.
If addr is specified, shmat will fail if the segment cannot be
attached as specified because memory is already allocated near the