bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Debugging glibc / startup stuff via a subhurd


From: Thomas Schwinge
Subject: Re: Debugging glibc / startup stuff via a subhurd
Date: Fri, 9 Mar 2007 17:52:56 +0100
User-agent: Mutt/1.5.11

Hello!

First of all, I began to write down notes on
<http://hurd.gnufans.org/bin/view/Hurd/Debugging>,
<http://hurd.gnufans.org/bin/view/Hurd/DebuggingGlibc> and
<http://hurd.gnufans.org/bin/view/Hurd/DebuggingViaSubhurds>.  Please,
everyone, contribute!


On Sun, Feb 11, 2007 at 12:39:36PM -0800, Roland McGrath wrote:
> > Program received signal EXC_BAD_ACCESS, Could not access memory.
> > 0x000168f2 in ?? ()
> > (gdb) bt
> > #0  0x000168f2 in ?? ()
> > Cannot access memory at address 0xbeffffe4
> > (gdb) info threads
> > * 1 thread 1005.1  0x000168f2 in ?? ()
> > (gdb) disassemble 
> > No function contains program counter for selected frame.
> 
> Use x/10i $pc to see the code there when disassemble doesn't know what
> bounds to use.

Thanks, that worked; see below.


> When gdb is confused, you can figure out what's loaded where and use
> add-symbol-file with some manual calculations.

What was even easier than that was to run GDB against the `ld.so.1' and
not the Hurd's `exec' server binary, since the former is what is actually
being debugged here.

> I'm sure the details of that are floating around somewhere.

I didn't find them so far.


So, there is some progress, some more information.  Roland, perhaps you
(or someone else) can easily make some sense out of them?

As I didn't happen to find any other way to reproduce the problem, this
is again via using a sub-hurd.  More precisely it is about the `ld.so.1'
that is used to get the Hurd's `exec' server running in the Hurd's boot
process.


#v+
Program received signal EXC_BAD_ACCESS, Could not access memory.
__mach_port_mod_refs (task=1, name=139802, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
132             InP->Head.msgh_reply_port = __mig_get_reply_port();
(gdb) x/i $pc
0x168f2 <__mach_port_mod_refs+82>:      call   0x151b0 <__mig_get_reply_port>
#v-

How can `call' cause a `EXC_BAD_ACCESS'?  First guess: 0x151b0 is
(erroneously) set to not be executable, but:

#v+
$ sudo vminfo [...]
[...]
    0xa000[0x11000] (prot=RX, max_prot=RWX, mem_obj=31, offs=0xa000)
[...]
#v-

So, that's not it.

#v+
(gdb) info registers 
eax            0x1      1
ecx            0xffffffff       -1
edx            0x2221a  139802
ebx            0x1bff4  114676
esp            0xbeffffe4       0xbeffffe4
[Mind the stack pointer!  The stack space ``only'' goes from 0xbf000000 to
0xc0000000.  `call' tried to save state to 0xbeffffe4, which is a ``hole''
according to `vminfo'.]
ebp            0xbf000038       0xbf000038
esi            0x20     32
edi            0x0      0
eip            0x168f2  0x168f2 <__mach_port_mod_refs+82>
eflags         0x10296  [ PF AF SF IF RF ]
cs             0x17     23
ss             0x1f     31
ds             0x1f     31
es             0x1f     31
fs             0x1f     31
gs             0x1f     31
(gdb) bt
#0  __mach_port_mod_refs (task=1, name=139802, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
#1  0x0001518e in __mig_dealloc_reply_port (arg=139802) at 
../sysdeps/mach/hurd/mig-reply.c:57
#2  0x0001694a in __mach_port_mod_refs (task=1, name=139801, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
#3  0x0001518e in __mig_dealloc_reply_port (arg=139801) at 
../sysdeps/mach/hurd/mig-reply.c:57
#4  0x0001694a in __mach_port_mod_refs (task=1, name=139800, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
[It goes on like this for ages.  Roughly 139800 * 2 frames, I guess...]
(gdb) bt -20
[After some time: Mach kernel panic ?? la zalloc ipc ports.]
#v-

Reboot and new try.

#v+
(gdb) break _dl_protect_relro
Breakpoint 1 at 0x9257: file dl-reloc.c, line 322.
(gdb) continue 
[...]
Breakpoint 1, _dl_protect_relro (l=0x477c0) at dl-reloc.c:322
322     {
[Goes about to set 0x200000 to 0x201000 to read-only.]
(gdb) continue 
Continuing.

Breakpoint 1, _dl_protect_relro (l=0x47528) at dl-reloc.c:322
322     {
[Goes about to set 0x1dd000 to 0x1de000 to read-only.]
(gdb) continue 
Continuing.

Breakpoint 1, _dl_protect_relro (l=0x472a0) at dl-reloc.c:322
322     {
[Goes about to set 0x1c2000 to 0x1c3000 to read-only.]
(gdb) continue 
Continuing.

Breakpoint 1, _dl_protect_relro (l=0x1c368) at dl-reloc.c:322
322     {
[Goes about to set 0x1b000 to 0x1c000 to read-only, but would fail with
`EXC_BAD_ACCESS' if continued here, so instead...]
(gdb) break *0x168f2
Breakpoint 2 at 0x168f2: file 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c,
 line 132.
(gdb) continue
Continuing.

Breakpoint 2, __mach_port_mod_refs (task=1, name=6, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
132             InP->Head.msgh_reply_port = __mig_get_reply_port();
(gdb) 
Continuing.

Breakpoint 2, __mach_port_mod_refs (task=1, name=1, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
132             InP->Head.msgh_reply_port = __mig_get_reply_port();
(gdb) 
Continuing.

Breakpoint 2, __mach_port_mod_refs (task=1, name=2, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
132             InP->Head.msgh_reply_port = __mig_get_reply_port();
(gdb) 
Continuing.

Breakpoint 2, __mach_port_mod_refs (task=1, name=7, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
132             InP->Head.msgh_reply_port = __mig_get_reply_port();
(gdb) 
Continuing.

Breakpoint 2, __mach_port_mod_refs (task=1, name=8, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
132             InP->Head.msgh_reply_port = __mig_get_reply_port();
(gdb) 
Continuing.

Breakpoint 2, __mach_port_mod_refs (task=1, name=9, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
132             InP->Head.msgh_reply_port = __mig_get_reply_port();
(gdb) 
Continuing.

Breakpoint 2, __mach_port_mod_refs (task=1, name=10, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
132             InP->Head.msgh_reply_port = __mig_get_reply_port();
[Looks familiar.  Give 'em some more.]
[...]
[Goes on like this, with increasing `name'.]
(gdb) bt
#0  __mach_port_mod_refs (task=1, name=23, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
#1  0x0001518e in __mig_dealloc_reply_port (arg=23) at 
../sysdeps/mach/hurd/mig-reply.c:57
#2  0x0001694a in __mach_port_mod_refs (task=1, name=22, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
#3  0x0001518e in __mig_dealloc_reply_port (arg=22) at 
../sysdeps/mach/hurd/mig-reply.c:57
#4  0x0001694a in __mach_port_mod_refs (task=1, name=21, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
[...]
#31 0x0001518e in __mig_dealloc_reply_port (arg=8) at 
../sysdeps/mach/hurd/mig-reply.c:57
#32 0x0001694a in __mach_port_mod_refs (task=1, name=7, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
#33 0x0001518e in __mig_dealloc_reply_port (arg=7) at 
../sysdeps/mach/hurd/mig-reply.c:57
#34 0x0001694a in __mach_port_mod_refs (task=1, name=2, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
#35 0x0001518e in __mig_dealloc_reply_port (arg=2) at 
../sysdeps/mach/hurd/mig-reply.c:57
#36 0x0001694a in __mach_port_mod_refs (task=1, name=1, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
#37 0x0001518e in __mig_dealloc_reply_port (arg=1) at 
../sysdeps/mach/hurd/mig-reply.c:57
#38 0x0001694a in __mach_port_mod_refs (task=1, name=6, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
#39 0x0001518e in __mig_dealloc_reply_port (arg=6) at 
../sysdeps/mach/hurd/mig-reply.c:57
#40 0x00015af9 in __vm_protect (target_task=1, address=110592, size=4096, 
set_maximum=0, new_protection=1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_vm_protect.c:155
#41 0x00016d66 in __mprotect (addr=0x1b000, len=4096, prot=23) at 
../sysdeps/mach/mprotect.c:42
#42 0x00009292 in _dl_protect_relro (l=0x1c368) at dl-reloc.c:328
#43 0x00009787 in _dl_relocate_object (l=<value optimized out>, scope=0x1c9b0, 
lazy=0, consider_profiling=0) at dl-reloc.c:316
#44 0x000037fa in dl_main (phdr=0x8048034, phnum=224, user_entry=0xbffffe80) at 
rtld.c:2306
#45 0x00010905 in go.10520 () at ../sysdeps/mach/hurd/dl-sysdep.c:198
#46 0x0001279d in _hurd_startup (argptr=0xbfffffc0, main=0xbfffff40) at 
hurdstartup.c:189
#47 0x000107d6 in _dl_sysdep_start (start_argptr=0xbfffffc0, dl_main=0x2480 
<dl_main>) at ../sysdeps/mach/hurd/dl-sysdep.c:266
#48 0x00001604 in _dl_start (arg=0xbfffffc0) at rtld.c:324
#49 0x00000c67 in _start () at rtld.c:782
(gdb) bt full
#0  __mach_port_mod_refs (task=1, name=23, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:132
        Mess = {In = {Head = {msgh_bits = 5395, msgh_size = 0, msgh_remote_port 
= 1, msgh_local_port = 0, msgh_seqno = 0, msgh_id = 0}, 
    nameType = {msgt_name = 15, msgt_size = 32, msgt_number = 1, msgt_inline = 
1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}, 
    name = 23, rightType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
      msgt_unused = 0}, right = 1, deltaType = {msgt_name = 2, msgt_size = 32, 
msgt_number = 1, msgt_inline = 1, msgt_longform = 0, 
      msgt_deallocate = 0, msgt_unused = 0}, delta = -1}, Out = {Head = 
{msgh_bits = 5395, msgh_size = 0, msgh_remote_port = 1, 
      msgh_local_port = 0, msgh_seqno = 0, msgh_id = 0}, RetCodeType = 
{msgt_name = 15, msgt_size = 32, msgt_number = 1, msgt_inline = 1, 
      msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}, RetCode = 23}}
        msg_result = <value optimized out>
        nameType = {msgt_name = 15, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        rightType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        deltaType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        RetCodeCheck = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
  msgt_unused = 0}
#1  0x0001518e in __mig_dealloc_reply_port (arg=23) at 
../sysdeps/mach/hurd/mig-reply.c:57
        port = 23
        portloc = <value optimized out>
#2  0x0001694a in __mach_port_mod_refs (task=1, name=22, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
        Mess = {In = {Head = {msgh_bits = 5395, msgh_size = 292800, 
msgh_remote_port = 1, msgh_local_port = 23, msgh_seqno = 0, 
      msgh_id = 3208}, nameType = {msgt_name = 15, msgt_size = 32, msgt_number 
= 1, msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
      msgt_unused = 0}, name = 22, rightType = {msgt_name = 2, msgt_size = 32, 
msgt_number = 1, msgt_inline = 1, msgt_longform = 0, 
      msgt_deallocate = 0, msgt_unused = 0}, right = 1, deltaType = {msgt_name 
= 2, msgt_size = 32, msgt_number = 1, msgt_inline = 1, 
      msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}, delta = -1}, 
Out = {Head = {msgh_bits = 5395, msgh_size = 292800, 
      msgh_remote_port = 1, msgh_local_port = 23, msgh_seqno = 0, msgh_id = 
3208}, RetCodeType = {msgt_name = 15, msgt_size = 32, 
      msgt_number = 1, msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
msgt_unused = 0}, RetCode = 22}}
        msg_result = 268435459
        nameType = {msgt_name = 15, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        rightType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        deltaType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        RetCodeCheck = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
  msgt_unused = 0}
#3  0x0001518e in __mig_dealloc_reply_port (arg=22) at 
../sysdeps/mach/hurd/mig-reply.c:57
        port = 23
        portloc = <value optimized out>
[...]
#31 0x0001518e in __mig_dealloc_reply_port (arg=8) at 
../sysdeps/mach/hurd/mig-reply.c:57
        port = 23
        portloc = <value optimized out>
#32 0x0001694a in __mach_port_mod_refs (task=1, name=7, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
        Mess = {In = {Head = {msgh_bits = 5395, msgh_size = 0, msgh_remote_port 
= 1, msgh_local_port = 8, msgh_seqno = 0, msgh_id = 3208}, 
    nameType = {msgt_name = 15, msgt_size = 32, msgt_number = 1, msgt_inline = 
1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}, 
    name = 7, rightType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
      msgt_unused = 0}, right = 1, deltaType = {msgt_name = 2, msgt_size = 32, 
msgt_number = 1, msgt_inline = 1, msgt_longform = 0, 
      msgt_deallocate = 0, msgt_unused = 0}, delta = -1}, Out = {Head = 
{msgh_bits = 5395, msgh_size = 0, msgh_remote_port = 1, 
      msgh_local_port = 8, msgh_seqno = 0, msgh_id = 3208}, RetCodeType = 
{msgt_name = 15, msgt_size = 32, msgt_number = 1, msgt_inline = 1, 
      msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}, RetCode = 7}}
        msg_result = 268435459
        nameType = {msgt_name = 15, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        rightType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        deltaType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        RetCodeCheck = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
  msgt_unused = 0}
#33 0x0001518e in __mig_dealloc_reply_port (arg=7) at 
../sysdeps/mach/hurd/mig-reply.c:57
        port = 23
        portloc = <value optimized out>
#34 0x0001694a in __mach_port_mod_refs (task=1, name=2, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
        Mess = {In = {Head = {msgh_bits = 5395, msgh_size = 71777, 
msgh_remote_port = 1, msgh_local_port = 7, msgh_seqno = 0, 
      msgh_id = 3208}, nameType = {msgt_name = 15, msgt_size = 32, msgt_number 
= 1, msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
      msgt_unused = 0}, name = 2, rightType = {msgt_name = 2, msgt_size = 32, 
msgt_number = 1, msgt_inline = 1, msgt_longform = 0, 
      msgt_deallocate = 0, msgt_unused = 0}, right = 1, deltaType = {msgt_name 
= 2, msgt_size = 32, msgt_number = 1, msgt_inline = 1, 
      msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}, delta = -1}, 
Out = {Head = {msgh_bits = 5395, msgh_size = 71777, 
      msgh_remote_port = 1, msgh_local_port = 7, msgh_seqno = 0, msgh_id = 
3208}, RetCodeType = {msgt_name = 15, msgt_size = 32, 
      msgt_number = 1, msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
msgt_unused = 0}, RetCode = 2}}
        msg_result = 268435459
        nameType = {msgt_name = 15, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        rightType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        deltaType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        RetCodeCheck = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
  msgt_unused = 0}
#35 0x0001518e in __mig_dealloc_reply_port (arg=2) at 
../sysdeps/mach/hurd/mig-reply.c:57
        port = 23
        portloc = <value optimized out>
#36 0x0001694a in __mach_port_mod_refs (task=1, name=1, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
        Mess = {In = {Head = {msgh_bits = 5395, msgh_size = 0, msgh_remote_port 
= 1, msgh_local_port = 2, msgh_seqno = 0, msgh_id = 3208},
    nameType = {msgt_name = 15, msgt_size = 32, msgt_number = 1, msgt_inline = 
1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0},
    name = 1, rightType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0,
      msgt_unused = 0}, right = 1, deltaType = {msgt_name = 2, msgt_size = 32, 
msgt_number = 1, msgt_inline = 1, msgt_longform = 0,
      msgt_deallocate = 0, msgt_unused = 0}, delta = -1}, Out = {Head = 
{msgh_bits = 5395, msgh_size = 0, msgh_remote_port = 1,
      msgh_local_port = 2, msgh_seqno = 0, msgh_id = 3208}, RetCodeType = 
{msgt_name = 15, msgt_size = 32, msgt_number = 1, msgt_inline = 1,
      msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}, RetCode = 1}}
        msg_result = 268435459
        nameType = {msgt_name = 15, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        rightType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        deltaType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        RetCodeCheck = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0,
  msgt_unused = 0}
#37 0x0001518e in __mig_dealloc_reply_port (arg=1) at 
../sysdeps/mach/hurd/mig-reply.c:57
        port = 23
        portloc = <value optimized out>
#38 0x0001694a in __mach_port_mod_refs (task=1, name=6, right=1, delta=-1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_mach_port_mod_refs.c:138
        Mess = {In = {Head = {msgh_bits = 5395, msgh_size = 291488, 
msgh_remote_port = 1, msgh_local_port = 1, msgh_seqno = 0,
      msgh_id = 3208}, nameType = {msgt_name = 15, msgt_size = 32, msgt_number 
= 1, msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0,
      msgt_unused = 0}, name = 6, rightType = {msgt_name = 2, msgt_size = 32, 
msgt_number = 1, msgt_inline = 1, msgt_longform = 0,
      msgt_deallocate = 0, msgt_unused = 0}, right = 1, deltaType = {msgt_name 
= 2, msgt_size = 32, msgt_number = 1, msgt_inline = 1,
      msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}, delta = -1}, 
Out = {Head = {msgh_bits = 5395, msgh_size = 291488,
      msgh_remote_port = 1, msgh_local_port = 1, msgh_seqno = 0, msgh_id = 
3208}, RetCodeType = {msgt_name = 15, msgt_size = 32,
      msgt_number = 1, msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
msgt_unused = 0}, RetCode = 6}}
        msg_result = 268435459
        nameType = {msgt_name = 15, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        rightType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        deltaType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        RetCodeCheck = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0,
  msgt_unused = 0}
#39 0x0001518e in __mig_dealloc_reply_port (arg=6) at 
../sysdeps/mach/hurd/mig-reply.c:57
        port = 23
        portloc = <value optimized out>
#40 0x00015af9 in __vm_protect (target_task=1, address=110592, size=4096, 
set_maximum=0, new_protection=1)
    at 
/var/tmp/glibc-2_5-branch/build_--without-tls_--without-__thread/mach/RPC_vm_protect.c:155
        Mess = {In = {Head = {msgh_bits = 5395, msgh_size = 16777248, 
msgh_remote_port = 1, msgh_local_port = 6, msgh_seqno = 0,
      msgh_id = 2024}, addressType = {msgt_name = 2, msgt_size = 32, 
msgt_number = 1, msgt_inline = 1, msgt_longform = 0,
      msgt_deallocate = 0, msgt_unused = 0}, address = 110592, sizeType = 
{msgt_name = 2, msgt_size = 32, msgt_number = 1, msgt_inline = 1,
      msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}, size = 4096, 
set_maximumType = {msgt_name = 0, msgt_size = 32,
      msgt_number = 1, msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
msgt_unused = 0}, set_maximum = 0, new_protectionType = {
      msgt_name = 2, msgt_size = 32, msgt_number = 1, msgt_inline = 1, 
msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0},
    new_protection = 1}, Out = {Head = {msgh_bits = 5395, msgh_size = 16777248, 
msgh_remote_port = 1, msgh_local_port = 6, msgh_seqno = 0, 
      msgh_id = 2024}, RetCodeType = {msgt_name = 2, msgt_size = 32, 
msgt_number = 1, msgt_inline = 1, msgt_longform = 0, 
      msgt_deallocate = 0, msgt_unused = 0}, RetCode = 110592}}
        msg_result = 268435459
        addressType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
  msgt_unused = 0}
        sizeType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, msgt_inline 
= 1, msgt_longform = 0, msgt_deallocate = 0, msgt_unused = 0}
        set_maximumType = {msgt_name = 0, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
  msgt_unused = 0}
        new_protectionType = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
  msgt_unused = 0}
        RetCodeCheck = {msgt_name = 2, msgt_size = 32, msgt_number = 1, 
msgt_inline = 1, msgt_longform = 0, msgt_deallocate = 0, 
  msgt_unused = 0}
#41 0x00016d66 in __mprotect (addr=0x1b000, len=4096, prot=23) at 
../sysdeps/mach/mprotect.c:42
        err = <value optimized out>
        vmprot = <value optimized out>
#42 0x00009292 in _dl_protect_relro (l=0x1c368) at dl-reloc.c:328
        start = 4294967295
        end = 23
        errstring = "cannot apply additional memory protection after relocation"
[...]
#v-

So, why are these functions recursing that deeply into each other?


Regards,
 Thomas

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]