This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: x86_64-m32 internal error for multi-thread-step.exp [Re: [PATCH v10 06/28] btrace: change branch trace data structure]
- From: "Metzger, Markus T" <markus dot t dot metzger at intel dot com>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>, "palves at redhat dot com" <palves at redhat dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Fri, 23 Jan 2015 14:35:35 +0000
- Subject: RE: x86_64-m32 internal error for multi-thread-step.exp [Re: [PATCH v10 06/28] btrace: change branch trace data structure]
- Authentication-results: sourceware.org; auth=none
- References: <1389686678-9039-1-git-send-email-markus dot t dot metzger at intel dot com> <1389686678-9039-7-git-send-email-markus dot t dot metzger at intel dot com> <20150108204943 dot GA4851 at host2 dot jankratochvil dot net> <A78C989F6D9628469189715575E55B231E6C3811 at IRSMSX104 dot ger dot corp dot intel dot com> <A78C989F6D9628469189715575E55B231E6C4759 at IRSMSX104 dot ger dot corp dot intel dot com> <20150122163740 dot GA11113 at host2 dot jankratochvil dot net> <A78C989F6D9628469189715575E55B231E6C51CF at IRSMSX104 dot ger dot corp dot intel dot com>
> -----Original Message-----
> From: Metzger, Markus T
> Sent: Friday, January 23, 2015 8:46 AM
> To: Jan Kratochvil
> It looks like the is_kernel_addr heuristic gets it wrong for 32bit inferiors
> on 64-bit systems. The heuristic checks whether the most significant bit
> is set. On 64-bit systems, the kernel is loaded into the high 64-bit area
> leaving the entire 32-bit address space to 32-bit processes. GDB checks
> bit 31 since it is a 32-bit inferior. It should still check bit 63 since it is a 64-bit
> kernel. Does GDB even know that the 32-bit inferior is running on a 64-bit
> system?
If we can fix that heuristic, it's just a matter of increasing the trace buffer
size - the trace is bigger on 32-bit systems.
I get the pointer size of the inferior via gdbarch_ptr_bit(). Does GDB also
know the pointer size of the kernel that runs the inferior?
Thanks,
Markus.
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052