i386 relocable kernel breakes /proc/kcore debugging
Subsystems (2)
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 6 lines · Maxim Levitsky
Hello,
Today I noticed that gdb gets confused when I try to load a vmlinux image. gdb 'thinks' that all kernel symbols are below
0x80000000, while they are at0xC000....
Quoted 7 lines
Turning
CONFIG_RELOCATABLEoff fixes that, so I assume that is the reason for that.I am using 2.6.23-rc1, although I don't think that older versions are better.
Best regards,
Maxim Levitsky
Weird.
Vivek could this be related to the problem of problematic core dumps we were seeing earlier?
Eric
Quoted 14 lines
PS:
This is what gdb says:(gdb) disassemble
sys_open
Dump of assembler code for functionsys_open:0x8026fa60<sys_open+0>: Cannot access memory at address0x8026fa60While real address of
sys_openis:[root@MAIN linux-2.6]# nm ./.obj/vmlinux | grep
sys_open
.........c016ea60Tsys_open
Quoted 7 lines
Strange, but gdb recordnizes the above address directly:
(gdb) disassemble
0xc016ea60
Dump of assembler code for functionsys_open:0xc016ea60 <sys_open+0>: sub $0x4,%esp 0xc016ea63 <sys_open+3>: mov 0x10(%esp),%eax...............
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Quoted 9 lines · Maxim Levitsky
Hello,
Today I noticed that gdb gets confused when I try to load a vmlinux image. gdb 'thinks' that all kernel symbols are below
0x80000000, while they are at0xC000....Turning
CONFIG_RELOCATABLEoff fixes that, so I assume that is the reason for that.
This is a gdb issue. I had raised it in gdb mailing list some time back.
http://sourceware.org/ml/gdb/2006-08/msg00137.html
What version of gdb you are using? I know it got fixed for gdb shipped with RHEL5. I am not sure about what upstream version of gdb it got fixed in.
I think Jan Kratochvil had put a patch to fix the issue. I am copying him on the mail and he should be able to tell which version of gdb to use.
Thanks
Vivek
Quoted 1 line · Vivek Goyal
On Sat, Jul 28, 2007 at 04:43:43AM +0300, Maxim Levitsky wrote:
...
Quoted 9 lines
Quoted 5 lines
gdb 'thinks' that all kernel symbols are below
0x80000000, while they are at0xC000....Turning
CONFIG_RELOCATABLEoff fixes that, so I assume that is the reason for that.This is a gdb issue. I had raised it in gdb mailing list some time back.
There was the patch post:
http://sources.redhat.com/ml/gdb/2006-08/msg00182.html
Quoted 3 lines
What version of gdb you are using? I know it got fixed for gdb shipped with RHEL5. I am not sure about what upstream version of gdb it got fixed in.
It did not make it to the upstream as the patch above is an imperfect one. It is fixed in RH gdb-6.5-5 upwards, therefore Fedora 6 + RHEL-5.
http://cvs.fedora.redhat.com/viewcvs/*checkout*/devel/gdb/gdb-6.5-bz203661-emit-relocs.patch?root=core
Regards,
Jan
Quoted 22 lines · Jan Kratochvil
Quoted 1 line · Vivek Goyal
On Sat, Jul 28, 2007 at 04:43:43AM +0300, Maxim Levitsky wrote:
...
Quoted 9 lines
Quoted 5 lines
gdb 'thinks' that all kernel symbols are below
0x80000000, while they are at0xC000....Turning
CONFIG_RELOCATABLEoff fixes that, so I assume that is the reason for that.This is a gdb issue. I had raised it in gdb mailing list some time back.
There was the patch post:
http://sources.redhat.com/ml/gdb/2006-08/msg00182.htmlQuoted 3 lines
What version of gdb you are using? I know it got fixed for gdb shipped with RHEL5. I am not sure about what upstream version of gdb it got fixed in.
Quoted 8 lines
It did not make it to the upstream as the patch above is an imperfect one. It is fixed in RH gdb-6.5-5 upwards, therefore Fedora 6 + RHEL-5.
http://cvs.fedora.redhat.com/viewcvs/*checkout*/devel/gdb/gdb-6.5-bz203661-emit-relocs.patch?root=core
Regards,
Jan
Hi,
I am using mandriva 2007 and gdb that come with it ( 6.3 I think) I also compiled gdb 6.6, but the same issue persist.
Thanks for the info, and I will try to apply the above patch and see if helps,
Will it make into gdb?
By the way, I had another issue with /proc/kcore.
That enabling sparse memory model instead of flat causes /proc/kcore not to work at all. I traced that to a "FIXME" in sparcemem.
/* XXX: FIXME -- wli */
#define kern_addr_valid(kaddr) (0)
Kconfig should contatin a warning for those who select sparcemem that /proc/kcore will be disabled.
or maybe this should be implemented (it is not easy since spacemem allows memory to be discontinous, and nobody wants to allow user to read reserved regions)
Except the above, /proc/kcore works fine, and it is very usefull.
Best regards,
Maxim Levitsky
Best regards,
Maxim Levitsky
Quoted 18 lines · Jan Kratochvil
Quoted 1 line · Vivek Goyal
On Sat, Jul 28, 2007 at 04:43:43AM +0300, Maxim Levitsky wrote:
...
Quoted 1 line
Quoted 1 line
gdb 'thinks' that all kernel symbols are below
0x80000000, while they areat
Quoted 3 lines
Quoted 3 lines
0xC000....Turning
CONFIG_RELOCATABLEoff fixes that, so I assume that is the reasonfor
Quoted 5 lines
Quoted 1 line
that.
This is a gdb issue. I had raised it in gdb mailing list some time back.
There was the patch post:
http://sources.redhat.com/ml/gdb/2006-08/msg00182.html
Quoted 7 lines
Quoted 3 lines
What version of gdb you are using? I know it got fixed for gdb shipped with RHEL5. I am not sure about what upstream version of gdb it got fixed in.
It did not make it to the upstream as the patch above is an imperfect one. It is fixed in RH gdb-6.5-5 upwards, therefore Fedora 6 + RHEL-5.
http://cvs.fedora.redhat.com/viewcvs/*checkout*/devel/gdb/gdb-6.5-bz203661-emit-relocs.patch?root=core
Has anyone looked at the filtering by ignoring SHTSYM_TAB? The other approach suggested? The patch above only works for ET_EXEC because we can safely ignore everything.
Eric