[GTALUG] QEMU and GDB debugging a kernel module
Bob Copeland
me at bobcopeland.com
Tue Sep 1 23:49:34 UTC 2015
On Fri, Aug 21, 2015 at 12:39 AM, Aruna Hewapathirane
<aruna.hewapathirane at gmail.com> wrote:
> Has anyone ever used qemu and gdb ? If so has anyone successfully
> debugged a module ? I would be very thankful if someone can show me
> the 'specific' steps to follow to get this going.
I have done this once upon a time... checking the scripts I used:
Step 1: launch qemu with -gdb like so:
qemu-system-x86_64 -nographic -kernel /path/to/kernel -gdb
tcp:10.0.0.1:1234 [all the other options]
(In my case 10.0.0.1 is bridged with the host.)
Step 2: Make a gdbinit file that looks like:
set architecture i386:x86-64:intel
target remote localhost:1234
file vmlinux
# this part is deep magic - check /proc/modules for correct offsets
add-symbol-file net/wireless/cfg80211.o 0xffffffffa00000000
# and so-on for whatever modules you care about
continue
Step 3: Launch gdb on the host
YMMV -- I rarely have used an actual debugger for my own kernel work.
I do frequently use gdb to do the same thing as addr2line by running
gdb on the .ko and then "l *addr+0x123" -- to resolve symbols from
oops messages, but you don't need qemu or remote gdb for that.
--
Bob Copeland %% www.bobcopeland.com
More information about the talk
mailing list