2008-02-25 14:50:10

by Theodore Ts'o

[permalink] [raw]
Subject: Should a x86 gdb work under an x86_64 kernel?

Hi,

I've noticed that if I try to use a 32-bit x86 gdb to debug a
32-bit program under a 64-bit x86_64 kernel, gdb (version 6.6-debian,
from Ubuntu Gutsy) immediately core dumps as soon as I run the test
program under the debugger. Is this normal/expected/known bug?

I haven't tried bisecting it yet, but it's been broken as early
as a little after 2.6.25-rc1, in late January. But before I spend a
large amount of time doing the bisect, I thought I'd ask if anyone has
heard of this issue. Does this sound familiar?

- Ted


2008-02-25 16:14:45

by Jeff Dike

[permalink] [raw]
Subject: Re: Should a x86 gdb work under an x86_64 kernel?

On Mon, Feb 25, 2008 at 09:49:43AM -0500, Theodore Ts'o wrote:
> I've noticed that if I try to use a 32-bit x86 gdb to debug a
> 32-bit program under a 64-bit x86_64 kernel, gdb (version 6.6-debian,
> from Ubuntu Gutsy) immediately core dumps as soon as I run the test
> program under the debugger. Is this normal/expected/known bug?

Probably - UML broke too.

Roland found the bug and posted a patch fairly quickly -
http://marc.info/?l=linux-kernel&m=120365510230307&q=raw

Jeff

--
Work email - jdike at linux dot intel dot com

2008-03-03 11:56:16

by Andi Kleen

[permalink] [raw]
Subject: Re: Should a x86 gdb work under an x86_64 kernel?

"Theodore Ts'o" <[email protected]> writes:

> Hi,
>
> I've noticed that if I try to use a 32-bit x86 gdb to debug a
> 32-bit program under a 64-bit x86_64 kernel, gdb (version 6.6-debian,
> from Ubuntu Gutsy) immediately core dumps as soon as I run the test
> program under the debugger. Is this normal/expected/known bug?

It's clearly a bug. x86-64 compat user space should be 99+% compatible
and running full 32bit user land with a 64bit kernel is supposed to work.

The main exceptions are a few programs that rely on the 3GB address space
(these can be used with linux32 --3gb), some programs which
make bogus assumptions about /proc,/sys which cannot be fixed
and a few programs which use obscure driver specific ioctls with
no compat wrapper.

-Andi