On Sat, Oct 27, 2001 at 10:12:12PM -0400, Roland McGrath wrote:
> > Similar on line 93 already. d[1] is not initalized correctly.
> 
> Well, there's nothing but simple C code before that.
> You can step through from the beginning of the function and see it all.
> 
> Be careful not to let gdb confuse you.  Sometimes it reports bogus types
> for variable-sized arrays.  

Ayup:

(gdb) print d[0]
$20 = 0x1025524
(gdb) print d[1]
$21 = 0x1025525

The sizeof d[0] seems to be 40, and indeed:

$22 = {ulink = {resource = {next = 0x80505c8, prevp = 0x126515a}, thread = {
      next = 0x1258d58, prevp = 0x125a808}, cleanup = 0x10255bc,
    cleanup_data = 0x110dc05}, cell = 0x1258d48, io_port = 5, type = 5,
  reply_port = 17470609}

Which is much more reasonable than:

(gdb) print *d[1]
$23 = {ulink = {resource = {next = 0x87000000, prevp = 0x58000000}, thread = {
      next = 0xfe352649, prevp = 0xac010bdb}, cleanup = 0x48011e18,
    cleanup_data = 0x801258d}, cell = 0x4080505, io_port = 83886080,
  type = -268435456, reply_port = 3355509333}

Nasty ;)

Marcus


_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to