3.4.2.3. GDB module_init break at the end of sys_init_module
TODO not working. This could be potentially very convenient.
The idea here is to break at a point late enough inside sys_init_module
, at which point lx-symbols
can be called and do its magic.
Beware that there are both sys_init_module
and sys_finit_module
syscalls, and insmod
uses fmodule_init
by default.
Both call do_module_init
however, which is what lx-symbols
hooks to.
If we try:
b sys_finit_module
then hitting:
n
does not break, and insertion happens, likely because of optimizations? Disable kernel compiler optimizations
Then we try:
b do_init_module
A naive:
fin
also fails to break!
Finally, in despair we notice that pr_debug prints the kernel load address as explained at Bypass lx-symbols.
So, if we set a breakpoint just after that message is printed by searching where that happens on the Linux source code, we must be able to get the correct load address before init_module
happens.