On 01.09.2010 13:52, Paweł Rusak wrote:
Breakpoint 1, sys_init_module (umod=0x804b018, len=50866,
    uargs=0x804b008 "\377P\211\303\350ג\001") at kernel/module.c:2591
2591        if (!capable(CAP_SYS_MODULE) || modules_disabled)
(gdb) c
Continuing.

Breakpoint 2, sys_init_module (umod=0x804b018, len=50866,
    uargs=0x804b008 "\377P\211\303\350ג\001") at kernel/module.c:2613
2613        if (mod->init != NULL)
(gdb) p modules
$1 = {next = 0x1256d7f0, prev = 0x125478dc}
(gdb) p 0x1256d7ec
$2 = 307681260
(gdb) p *((struct module *)0x1256d7ec)
$3 = {state = MODULE_STATE_COMING, list = {next = 0x125478dc,
    prev = 0x8236ab0}, name = "mapper_test", '\000' <repeats 48 times>,
  mkobj = {kobj = {name = 0x10ac26e0 "mapper_test", entry = {
        next = 0x118499a0, prev = 0x12547924}, parent = 0x118499b8,
      kset = 0x118499a0, ktype = 0x82363c8, sd = 0x11a22198, kref = {
        refcount = {counter = 3}}, state_initialized = 1, state_in_sysfs = 1,
      state_add_uevent_sent = 1, state_remove_uevent_sent = 0,
      uevent_suppress = 0}, mod = 0x1256d7ec, drivers_dir = 0x0, mp = 0x0},
  modinfo_attrs = 0x11a062e0, version = 0x0, srcversion = 0x0,
  holders_dir = 0x119abd60, syms = 0x0, crcs = 0x0, num_syms = 0, kp = 0x0,
  num_kp = 0, num_gpl_syms = 0, gpl_syms = 0x0, gpl_crcs = 0x0,
  unused_syms = 0x0, unused_crcs = 0x0, num_unused_syms = 0,
  num_unused_gpl_syms = 0, unused_gpl_syms = 0x0, unused_gpl_crcs = 0x0,
  gpl_future_syms = 0x0, gpl_future_crcs = 0x0, num_gpl_future_syms = 0,
  num_exentries = 0, extable = 0x0, init = 0x1256d00a,
  module_init = 0x12570000, module_core = 0x1256d000, init_size = 2322,
  core_size = 3353, init_text_size = 421, core_text_size = 1039,
  arch = {<No data fields>}, taints = 0, num_bugs = 0, bug_list = {
    next = 0x125479d0, prev = 0x823a118}, bug_table = 0x0,
  symtab = 0x125701a8, core_symtab = 0x1256da74, num_symtab = 70,
  core_num_syms = 19, strtab = 0x12570608 "", core_strtab = 0x1256dba4 "",
  sect_attrs = 0x10ac4200, notes_attrs = 0x119abd20, percpu = 0x0,
  args = 0x10ac2880 "", modules_which_use_me = {next = 0x1256d918,
    prev = 0x1256d918}, waiter = 0x11874060, exit = 0x1256d000, ref = {a = {
      counter = 1}}}
(gdb) add-symbol-file /home/dzwiedz/projekty/BIS/mapper_test.ko 0x1256d000
add symbol table from file "/home/dzwiedz/projekty/BIS/mapper_test.ko" at
    .text_addr = 0x1256d000
(y or n) y
Reading symbols from /home/dzwiedz/projekty/BIS/mapper_test.ko...done.
(gdb) p nf_mapper_init
$7 = {int (void)} 0x274 <nf_mapper_init>
(gdb) p nf_mapper_cleanup
$8 = {void (void)} 0xa9 <nf_mapper_cleanup>
(gdb) b nf_mapper_init
Breakpoint 3 at 0x274: file /home/dzwiedz/projekty/BIS/nf_bis_mapper.c, line 48.
(gdb) b nf_mapper_cleanup
Breakpoint 4 at 0xa9: file /home/dzwiedz/projekty/BIS/nf_bis_mapper.c, line 75.
(gdb) s
Warning:
Cannot insert breakpoint 4.
Error accessing memory address 0xa9: Input/output error.
Cannot insert breakpoint 3.
Error accessing memory address 0x274: Input/output error.

hard_handler (sig=29) at arch/um/os-Linux/sys-i386/signal.c:11
11    {
(gdb)
Problem was solved. I had to disable code optimalization in my UML kernel config. Also I it was needed to delete __init and __exit tag from module init and cleanup function.

regards,
--
Pawel R.
<pawel.rusak@wp.pl>