Я не уверен, что именно вы имеете в виду, когда говорите, что GDB не дружит с NASM. Дело в том, что GDB использует обозначение AT & T для отображения ассемблера. NASM использует нотацию Intel. Есть несколько различий, которые вы можете найти в Google.
Вы можете настроить GDB для отображения ассемблера, используя нотацию Intel. Команда set disassembly-flavor intel
Все программы, которые вы пробовали, kdb, ddd и friends, являются интерфейсом gdb. То есть они представляют вам другой пользовательский интерфейс, в то время как gdb используется в качестве их фоновой части.
Я думаю, что ваш лучший и, возможно, единственный разумный вариант - это GDB. Другой вариант - написать отладчик самостоятельно, но это довольно сложно.
Надеюсь, это поможет.