[Kgdb-bugreport] Problem getting kgdb to read kernel symbols. addresses shifted?
anderson at redhat.com
Mon Oct 1 09:35:27 EDT 2007
Vivek Goyal wrote:
> On Fri, Sep 28, 2007 at 05:40:33PM -0600, Eric W. Biederman wrote:
>>Derek Atkins <warlord at MIT.EDU> writes:
>>>Well, gdb agrees with System.map, so I'm sure that gdb itself is
>>>okay. It's certainly possible that that the kgdb stub is weird,
>>>but /proc/kallsyms doesn't match System.map, and THAT'S what's
>>>confusing me most of all.
>>Ok. So we must have a relocatable kernel that figures it has been
>>What is your bootloader?
>>What is your kernel version?
>>What is your kernel config?
>>The only time I would expect to see what you are seeing is if
>>you are debugging the kdump kernel, which doesn't sound like
>>If we actually have a truly offset kernel then while things
>>may not be perfect this is at least expected. I don't think
>>I have heard of anyone handling this case very well.
> Hi Eric and others,
> I think we might be running into the issues because i386, FC7 relocatable
> kernel has been compiled for 16MB physical address but effectively it
> runs at 4MB physical address. So kernel does not run at compiled address
> and any kind of debugging tools reading symbol address from System.map
> or rom vmlinux will fail as run time symbol addresses are different.
> /proc/kallsyms should help though. This is one problem with shift in run
> time virtual address while relocating the kernel. We should be running kernel
> at compiled address to be able to debug it. Or enable any tools to parse
> /proc/kallsyms to read the shift in symbol addresses and adjust accordingly.
Right, crash was updated in version 4.0-4.5 to allow the use
of /proc/kallsyms as an alternative to the System.map file,
as well as adding a new --reloc command line argument. After
bringing up the vmlinux file in gdb (with the "wrong" addresses),
all of the minimal_symbol data structures in the gdb module are
back-patched with the /proc/kallsyms values:
It seems the benefit of configuring the kernel that way is debatable,
and I will do all I can to convince the RHEL-6 and beyond kernel
maintainers from doing it that way in the future. But Fedora goes
its own way. Seems totally lame to issue a bogus System.map file
More information about the kexec