My experience of gdb asm-level debugging is that it is incredibly buggy and dumps core at the drop of a hat. It's not fit for purpose. I've taken to using it to get a disassembly listing of the problematic code and simply analyzing it in an editor, rather than risk doing anything in gdb.
http://x86asm.net/articles/what-i-dislike-about-gas/
But another thing I can say from experience is that GDB Asm-level debugging seems to be more of an afterthought and everything doesn't make as much sense as e.g. OllyDbg or even the old MS-DOS DEBUG. The behaviour of some commands like "disassemble" is perplexing at best[1]. It was really meant for use with higher-level languages.
[1] http://stackoverflow.com/questions/1237489/how-can-i-force-g...