Opened 14 years ago

Last modified 4 years ago

#6637 closed bug

QEMU triggers a segment violation in BPrivate::superblock::superblock() — at Version 1

Reported by: andreasf Owned by: axeld
Priority: normal Milestone:
Component: System/libroot.so Version: R1/Development
Keywords: Cc: mmlr
Blocked By: Blocking:
Platform: x86

Description (last modified by andreasf)

I get the following segment violation when running QEMU system emulation on hrev38695.

[Switching to team /boot/common/bin/qemu-system-ppc /dev/null -nographic (15566) thread qemu-system-ppc (15566)]
0x00c48000 in BPrivate::superblock::superblock ()
   from /boot/system/lib/libroot.so
(gdb) bt
#0  0x00c48000 in BPrivate::superblock::superblock ()
   from /boot/system/lib/libroot.so
#1  0x00c48692 in BPrivate::superblock::makeSuperblock ()
   from /boot/system/lib/libroot.so
#2  0x00c48fe8 in BPrivate::threadHeap::malloc ()
   from /boot/system/lib/libroot.so
#3  0x00c49ce4 in calloc () from /boot/system/lib/libroot.so
#4  0x00259f84 in qemu_mallocz ()
#5  0x00291d4d in readline_init ()
#6  0x00244355 in monitor_init ()
#7  0x002b0f9d in qemu_chr_open ()
#8  0x0039d144 in qemu_set_fd_handler ()
#9  0x0039c0cd in qemu_powerdown_requested ()
#10 0x00000000 in ?? ()
#11 0x7ffeef68 in ?? ()
#12 0x0039c09e in qemu_powerdown_requested ()
#13 0x0039d1d0 in qemu_set_fd_handler ()
Previous frame inner to this frame (corrupt stack?)
(gdb) 

mmlr was able to work around this by using areas for sizes >= 1 MiB instead. A simple test program calloc'ing, e.g., 256 MiB works just fine though.

Change History (2)

by andreasf, 14 years ago

Attachment: test.c added

test program that works okay

comment:1 by andreasf, 14 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.