Thread (2 messages) 2 messages, 2 authors, 2001-11-26

Re: Using BDI2000 for module debugging

From: Frank Rowand <hidden>
Date: 2001-11-26 19:27:23

Rudolf Ladyzhenskii wrote:
Hi, all

I have a particular module that crashes the system during installation.
What is the best way to use BDI2000 to stop on the first instruction of the
init_module()?

I can do kernel debugging with BDI2000, but I am not sure how to get to the
dynamically loaded modules.
This info was correct for 2.4.2, I don't know if it is still correct.  I
used this method for KGDB, but it should work for the BDI2000 too.

Set a breakpoint in sys_init_module() at a place after the module has
been loaded, but before the init routine has been called.  Here's
where I did it in 2.4.2:


        /* Free our temporary memory.  */
        put_mod_name(n_name);
        put_mod_name(name);

        /* Initialize the module.  */
        mod->flags |= MOD_INITIALIZING;
        atomic_set(&mod->uc.usecount,1);


breakpoint here, before the "mod->init()"....


        if (mod->init && (error = mod->init()) != 0) {
                atomic_set(&mod->uc.usecount,0);
                mod->flags &= ~MOD_INITIALIZING;
                if (error > 0)  /* Buggy module */
                        error = -EBUSY;
                goto err0;
        }

From the breakpoint in sys_init_module(), you can set a breakpoint in
the module's init_module()


-Frank
--
Frank Rowand [off-list ref]
MontaVista Software, Inc

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help