RE: x86_64-m32 internal error for multi-thread-step.exp [Re: [PATCH v10 06/28] btrace: change branch trace data structure]

Metzger, Markus T
2015-01-23T14:35:58Z

> -----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