Comment 1 for bug 284631

Revision history for this message
Roman Yepishev (rye) wrote : Re: UML kernel built in Intrepid SEGFAULTs immediately

Built a debug version:

rtg$ gdb ./linux
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) set args ubda=/home/rtg/test.img
(gdb) run
Starting program: /home/rtg/Downloads/Linux/linux-2.6.27.1/linux ubda=/home/rtg/test.img
Locating the bottom of the address space ...
Program received signal SIGSEGV, Segmentation fault.
0x08087451 in page_ok (page=0) at arch/um/os-Linux/sys-i386/task_size.c:31
31 n = *address;
(gdb) l
26 * still in the kernel area. As a sanity check, we'll fail if
27 * the mmap succeeds, but gives us an address different from
28 * what we wanted.
29 */
30 if (setjmp(buf) == 0)
31 n = *address;
32 else {
33 mapped = mmap(address, UM_KERN_PAGE_SIZE,
34 PROT_READ | PROT_WRITE,
35 MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
(gdb) bt
#0 0x08087451 in page_ok (page=0) at arch/um/os-Linux/sys-i386/task_size.c:31
#1 0x08087691 in os_get_top_address () at arch/um/os-Linux/sys-i386/task_size.c:100
#2 0x0804b7f1 in linux_main (argc=2, argv=0xbfa2d734) at arch/um/kernel/um_arch.c:277
#3 0x0804cdf0 in main (argc=2, argv=0xbfa2d734, envp=0xbfa2d740) at arch/um/os-Linux/main.c:150
(gdb)

The crash happens upon n=*address assignment when address equals to 0x0. Actually running both uml kernels in gdb produce this result while hardy one operates fine when running outside of debugger.