On 2023/11/28 18:05, lijiang wrote:
> There might be address overlap of one module's .init.text
symbols and
> another module's .text symbols. As a result, gdb fails to translate the
> address to symbol name correctly:
>
> crash> sym -m virtio_blk | grep MODULE
> ffffffffc00a4000 MODULE START: virtio_blk
> ffffffffc00a86ec MODULE END: virtio_blk
> crash> gdb info address floppy_module_init
> Symbol "floppy_module_init" is a function at address 0xffffffffc00a4131.
>
> Since the .init.* sections of a module had been freed by kernel if the
> module was initialized successfully, there is no need to load the .init.*
> sections data from "*.ko.debug" in gdb to create such an overlap.
> lm->mod_init_module_ptr is used as a flag of whether module is freed.
>
>
Good findings, Tao.
The v2 looks good to me. So: Ack.
This was the correct one... applied.
https://github.com/crash-utility/crash/commit/0c5ef6a4a3a2759915ffe72b136...
Let's see if there is no side effect with this on field use.
Thanks,
Kazu