I have a project with one .c C source code and one .S assembly source code. Once compiled and linked, is there any way to debug .S code using Kdbg? I am calling one .S function from .c file but no code loads in Kdbg.
-
Why kdbg rather than WinDbg? And which compiler? And what build options? Details please! – David Heffernan Aug 21 '11 at 20:58
-
please add gcc and ubuntu tags otherwise you question is ambiguous. Kdbg is a kernel debugger on windows. – David Heffernan Aug 22 '11 at 07:21
2 Answers
Add a .file directive in your source, like: .file "sourceasm.s". Kdbg will then use it as expected.

- 31
- 2
I I just tried kdbg
(the KDE front-end for gdb, not the Linux kernel debugger kgdb
of almost the same name).
It doesn't seem to have a proper disassembly mode like regular gdb's layout asm
. You can set the "memory" window to disassembly and the address to $pc
(and it updates as you single step), but that ties up the memory window and isn't very flexible for setting breakpoints or scrolling backwards to instructions before the current RIP/EIP.
Even if you're debugging asm source, you sometimes want to have the debugger show you the real disassembly, as well / instead of the asm source. For example in code that uses macros, or NASM %rep
to repeat blocks.
AFAICT, kdbg
is not a very good choice for asm debugging. text-mode GDB with layout asm
/ layout reg
is ok; see the bottom of the x86 tag wiki for tips. I've also tried https://github.com/cs01/gdbgui. It has a disassembly mode, but it's not very nice.
As @ivan says, kgdb will let you do source level debugging of asm source files if you add enough metadata for it to know what source file the object came from.
- gcc: Build with
gcc -g foo.S
- NASM: Assemble with
nasm -felf64 -g -Fdwarf
to include DWARF debug info. (The NASM default is STABS debug info, which also works.) - YASM: Assemble with
yasm -felf64 -gdwarf2
.
See Assembling 32-bit binaries on a 64-bit system (GNU toolchain) for more about building static / dynamic binaries from asm source.

- 328,167
- 45
- 605
- 847
-
`kdbg is not a very good choice for asm debugging` Is *ddd* the only good choice for a GUI asm debugger on Linux? – MWB Oct 05 '20 at 04:06
-
@MaxB: IDK, I haven't gone looking. `gdbgui` is not bad, and has probably improved since I last checked. There might be something decent built-in to one of the IDEs, too, bug again I haven't checked. – Peter Cordes Oct 05 '20 at 04:13