http://home.myfairpoint.net/fbkotler/debug-0.0.21.tgz is what I use for a debugger. Written by Terry Loveall, his "Coughing up a Furball" page has apparently vanished, so I put it there. It is for Linux, and probably won't help you. For Windows, "Ollydbg" is popular, or "windbg". Because I find gdb "unfriendly", I don't use it much. Because I don't use it much, I don't know how to use it. Because I don't know how to use it, I find it "unfriendly". Viscious circle! Learn to use gdb, if you can...
I googled "mingw nasm" and found some information. Apparently, you're not the only one who finds that "-f elf" works. Apparently, I'm not the only one who thinks that it isn't really right, although it apparently works in some cases. I really think that "-f win32" is right. Apparently, the MinGW tools like ".o" as an extension, not ".obj" as Nasm defaults to. "-o myfile.o" should fix this.
Nasm's "-f win32" doesn't have a "debug information" format - adding "-g" is silently ignored. Still, there is apparently enough symbolic information in the executable for Ollydbg to work with. Adding "-g" to gcc's command line may cause gcc to pass "whatever it's got" to the executable (we want it in Linux, anyway).
One of the things I found was a tutorial right here on the Nasm Forum. It involves running the MinGW tools in Linux to "cross compile" to a Windows executable. Not what you want, but there might be a "clue" there(?).
Never give up, never surrender, never let 'em see you sweat! Or... it might be more practical to just use Ollydbg.
Best,
Frank