This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

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

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]