Hi, Kazu
Thank you for the comment.
On Fri, Sep 16, 2022 at 3:42 PM HAGIO KAZUHITO(萩尾 一仁) <k-hagio...@nec.com>
wrote:

> On 2022/09/16 15:00, Lianbo Jiang wrote:
> > Currently, crash may fail with the following error:
> >
> >    # ./crash vmlinux /var/crash/127.0.0.1-2022-09-15-09:31:55/vmcore -s
> >    WARNING: invalid linux_banner pointer: 65762078756e694c
> >    crash: vmlinux and /var/crash/127.0.0.1-2022-09-15-09:31:55/vmcore do
> not match!
> >
> > The reason is that the type of symbols in the data segment may be
> > defined as 'D' or 'd'. The crash only handled the type 'D', but it
> > didn't deal with the type 'd'. For example:
> >
> >    # nm vmlinux |grep linux_banner
> >    ffffffff827cfa80 d linux_banner
> >
> > Let's add the type 'd' recognition to solve such issue.
>
> Thank you for the fix, the patch diff looks good.
>
> I've searched for a vmlinux that its symbol type is 'd', but not found.
> Do you know what makes it 'd'?  It would be better to add the cause to
> the commit log, for future reference.
>
>
The kernel package(vmlinux) is built on x86 _64 machines by clang, the type
of symbol 'linux_banner' is defined as 'd' instead of 'D', but for gcc,
usually it is the type 'D'.

Hope this helps.

Thanks.
Lianbo

Thanks,
> Kazu
>
> >
> > Signed-off-by: Lianbo Jiang <liji...@redhat.com>
> > ---
> >   kernel.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/kernel.c b/kernel.c
> > index a521ef30cdb0..aa030e8097ea 100644
> > --- a/kernel.c
> > +++ b/kernel.c
> > @@ -1060,7 +1060,7 @@ verify_version(void)
> >       if (!(sp = symbol_search("linux_banner")))
> >               error(FATAL, "linux_banner symbol does not exist?\n");
> >       else if ((sp->type == 'R') || (sp->type == 'r') ||
> > -             (THIS_KERNEL_VERSION >= LINUX(2,6,11) && sp->type == 'D')
> ||
> > +             (THIS_KERNEL_VERSION >= LINUX(2,6,11) && (sp->type == 'D'
> || sp->type == 'd')) ||
> >                (machine_type("ARM") && sp->type == 'T') ||
> >                (machine_type("ARM64")))
> >               linux_banner = symbol_value("linux_banner");
--
Crash-utility mailing list
Crash-utility@redhat.com
https://listman.redhat.com/mailman/listinfo/crash-utility
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to