[Issue 10274] DMD 2.063 produces broken binaries

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Jun 10 08:20:52 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=10274



--- Comment #9 from Jerry Quinn <jlquinn at optonline.net> 2013-06-10 08:20:50 PDT ---
Program received signal SIGSEGV, Segmentation fault.
0x0000000000438cc8 in _d_dso_registry ()
(gdb) disas
Dump of assembler code for function _d_dso_registry:
   0x0000000000438ac8 <+0>:    push   %rbp
   0x0000000000438ac9 <+1>:    mov    %rsp,%rbp
   0x0000000000438acc <+4>:    sub    $0x98,%rsp
   0x0000000000438ad3 <+11>:    push   %rbx
   0x0000000000438ad4 <+12>:    push   %r12
   0x0000000000438ad6 <+14>:    push   %r13
   0x0000000000438ad8 <+16>:    push   %r14
   0x0000000000438ada <+18>:    push   %r15
   0x0000000000438adc <+20>:    mov    %rdi,%r12
   0x0000000000438adf <+23>:    movabs $0x1,%rax
   0x0000000000438ae9 <+33>:    cmp    %rax,(%r12)
   0x0000000000438aed <+37>:    jae    0x438af0 <_d_dso_registry+40>
   0x0000000000438aef <+39>:    hlt    
   0x0000000000438af0 <+40>:    mov    0x8(%r12),%rcx
   0x0000000000438af5 <+45>:    cmpq   $0x0,(%rcx)
   0x0000000000438af9 <+49>:    jne    0x438cce <_d_dso_registry+518>
   0x0000000000438aff <+55>:    movabs $0x60,%rsi
   0x0000000000438b09 <+65>:    mov    %rax,%rdi
   0x0000000000438b0c <+68>:    callq  0x42b9a0 <calloc at plt>
   0x0000000000438b11 <+73>:    mov    %rax,%r14
   0x0000000000438b14 <+76>:    mov    0x8(%r12),%rdx
   0x0000000000438b19 <+81>:    mov    %r14,(%rdx)
---Type <return> to continue, or q <return> to quit---
   0x0000000000438b1c <+84>:    lea    -0x70(%rbp),%rax
   0x0000000000438b20 <+88>:    xor    %rcx,%rcx
   0x0000000000438b23 <+91>:    mov    %rcx,(%rax)
   0x0000000000438b26 <+94>:    mov    %rcx,0x8(%rax)
   0x0000000000438b2a <+98>:    mov    %rcx,0x10(%rax)
   0x0000000000438b2e <+102>:    mov    %rcx,0x18(%rax)
   0x0000000000438b32 <+106>:    mov    %rcx,0x20(%rax)
   0x0000000000438b36 <+110>:    mov    %rcx,0x28(%rax)
   0x0000000000438b3a <+114>:    mov    0x18(%r12),%rax
   0x0000000000438b3f <+119>:    mov    0x10(%r12),%rbx
   0x0000000000438b44 <+124>:    sub    %rbx,%rax
   0x0000000000438b47 <+127>:    cqto   
   0x0000000000438b49 <+129>:    and    $0x7,%rdx
   0x0000000000438b50 <+136>:    add    %rdx,%rax
   0x0000000000438b53 <+139>:    sar    $0x3,%rax
   0x0000000000438b57 <+143>:    mov    %rbx,%rdx
   0x0000000000438b5a <+146>:    mov    %rax,-0x70(%rbp)
   0x0000000000438b5e <+150>:    mov    %rdx,-0x68(%rbp)
   0x0000000000438b62 <+154>:    lea    -0x70(%rbp),%rsi
   0x0000000000438b66 <+158>:    lea    0x10(%r14),%rdi
   0x0000000000438b6a <+162>:    movsq  %ds:(%rsi),%es:(%rdi)
   0x0000000000438b6c <+164>:    movsq  %ds:(%rsi),%es:(%rdi)
   0x0000000000438b6e <+166>:    movsq  %ds:(%rsi),%es:(%rdi)
---Type <return> to continue, or q <return> to quit---
   0x0000000000438b70 <+168>:    movsq  %ds:(%rsi),%es:(%rdi)
   0x0000000000438b72 <+170>:    movsq  %ds:(%rsi),%es:(%rdi)
   0x0000000000438b74 <+172>:    movsq  %ds:(%rsi),%es:(%rdi)
   0x0000000000438b76 <+174>:    mov    0x28(%r12),%rcx
   0x0000000000438b7b <+179>:    mov    0x20(%r12),%r13
   0x0000000000438b80 <+184>:    sub    %r13,%rcx
   0x0000000000438b83 <+187>:    movabs $0xaaaaaaaaaaaaaaab,%rax
   0x0000000000438b8d <+197>:    imul   %rcx
   0x0000000000438b90 <+200>:    add    %rcx,%rdx
   0x0000000000438b93 <+203>:    mov    %rcx,%rax
   0x0000000000438b96 <+206>:    sar    $0x3f,%rax
   0x0000000000438b9a <+210>:    sar    $0x4,%rdx
   0x0000000000438b9e <+214>:    sub    %rax,%rdx
   0x0000000000438ba1 <+217>:    mov    %rdx,%rax
   0x0000000000438ba4 <+220>:    mov    %r13,%rdx
   0x0000000000438ba7 <+223>:    mov    %rax,(%r14)
   0x0000000000438baa <+226>:    mov    %rdx,0x8(%r14)
   0x0000000000438bae <+230>:    mov    0x8(%r12),%rsi
   0x0000000000438bb3 <+235>:    lea    -0x40(%rbp),%rdi
   0x0000000000438bb7 <+239>:    callq  0x438d40
<_D2rt14sections_linux18findDSOInfoForAddrFNbxPvPS4core3sys5linux4link12dl_phdr_infoZb>
   0x0000000000438bbc <+244>:    test   %al,%al
   0x0000000000438bbe <+246>:    jne    0x438bc1 <_d_dso_registry+249>
---Type <return> to continue, or q <return> to quit---
   0x0000000000438bc0 <+248>:    hlt    
   0x0000000000438bc1 <+249>:    mov    -0x28(%rbp),%ax
   0x0000000000438bc5 <+253>:    and    $0xffff,%eax
   0x0000000000438bca <+258>:    mov    %eax,%eax
   0x0000000000438bcc <+260>:    mov    -0x30(%rbp),%rcx
   0x0000000000438bd0 <+264>:    mov    %rax,-0x90(%rbp)
   0x0000000000438bd7 <+271>:    mov    %rcx,-0x88(%rbp)
   0x0000000000438bde <+278>:    cmpq   $0x0,-0x90(%rbp)
   0x0000000000438be6 <+286>:    je     0x438c92 <_d_dso_registry+458>
   0x0000000000438bec <+292>:    mov    -0x88(%rbp),%r12
   0x0000000000438bf3 <+299>:    mov    -0x90(%rbp),%rdx
   0x0000000000438bfa <+306>:    imul   $0x38,%rdx,%rbx
   0x0000000000438bfe <+310>:    add    -0x88(%rbp),%rbx
   0x0000000000438c05 <+317>:    mov    (%r12),%esi
   0x0000000000438c09 <+321>:    cmp    $0x1,%esi
   0x0000000000438c0c <+324>:    jne    0x438c6f <_d_dso_registry+423>
   0x0000000000438c0e <+326>:    testl  $0x2,0x4(%r12)
   0x0000000000438c17 <+335>:    je     0x438c6f <_d_dso_registry+423>
   0x0000000000438c19 <+337>:    mov    0x28(%r12),%rsi
   0x0000000000438c1e <+342>:    mov    0x10(%r12),%rcx
   0x0000000000438c23 <+347>:    add    -0x40(%rbp),%rcx
   0x0000000000438c27 <+351>:    mov    %rsi,-0x80(%rbp)
   0x0000000000438c2b <+355>:    mov    %rcx,-0x78(%rbp)
---Type <return> to continue, or q <return> to quit---
   0x0000000000438c2f <+359>:    lea    0x40(%r14),%r13
   0x0000000000438c33 <+363>:    mov    0x0(%r13),%rsi
   0x0000000000438c37 <+367>:    mov    0x8(%r13),%r15
   0x0000000000438c3b <+371>:    inc    %r15
   0x0000000000438c3e <+374>:    mov    %r15,%rdi
   0x0000000000438c41 <+377>:    shl    $0x4,%rdi
   0x0000000000438c45 <+381>:    callq  0x439040
<_D2rt4util9container8xreallocFPvmZPv>
   0x0000000000438c4a <+386>:    mov    %rax,0x0(%r13)
   0x0000000000438c4e <+390>:    mov    %r15,0x8(%r13)
   0x0000000000438c52 <+394>:    mov    -0x78(%rbp),%rdx
   0x0000000000438c56 <+398>:    mov    -0x80(%rbp),%rax
   0x0000000000438c5a <+402>:    mov    %r15,%r8
   0x0000000000438c5d <+405>:    shl    $0x4,%r8
   0x0000000000438c61 <+409>:    add    0x0(%r13),%r8
   0x0000000000438c65 <+413>:    mov    %rax,-0x10(%r8)
   0x0000000000438c69 <+417>:    mov    %rdx,-0x8(%r8)
   0x0000000000438c6d <+421>:    jmp    0x438c85 <_d_dso_registry+445>
   0x0000000000438c6f <+423>:    cmp    $0x7,%esi
   0x0000000000438c72 <+426>:    jne    0x438c85 <_d_dso_registry+445>
   0x0000000000438c74 <+428>:    mov    -0x10(%rbp),%rdi
   0x0000000000438c78 <+432>:    mov    %rdi,0x50(%r14)
   0x0000000000438c7c <+436>:    mov    0x28(%r12),%rax
---Type <return> to continue, or q <return> to quit---
   0x0000000000438c81 <+441>:    mov    %rax,0x58(%r14)
   0x0000000000438c85 <+445>:    add    $0x38,%r12
   0x0000000000438c89 <+449>:    cmp    %rbx,%r12
   0x0000000000438c8c <+452>:    jb     0x438c05 <_d_dso_registry+317>
   0x0000000000438c92 <+458>:    mov    0x48f37(%rip),%rsi        # 0x481bd0
<_D2rt14sections_linux12_static_dsosS2rt4util9container36__T5ArrayTPS2rt14sections_linux3DSOZ5Array>
   0x0000000000438c99 <+465>:    mov    0x48f34(%rip),%rbx        # 0x481bd4
<_D2rt14sections_linux12_static_dsosS2rt4util9container36__T5ArrayTPS2rt14sections_linux3DSOZ5Array+4>
   0x0000000000438ca0 <+472>:    inc    %rbx
   0x0000000000438ca3 <+475>:    mov    %rbx,%rdi
   0x0000000000438ca6 <+478>:    shl    $0x3,%rdi
   0x0000000000438caa <+482>:    callq  0x439040
<_D2rt4util9container8xreallocFPvmZPv>
   0x0000000000438caf <+487>:    mov    %rax,0x48f1a(%rip)        # 0x481bd0
<_D2rt14sections_linux12_static_dsosS2rt4util9container36__T5ArrayTPS2rt14sections_linux3DSOZ5Array>
   0x0000000000438cb6 <+494>:    mov    %rbx,0x48f17(%rip)        # 0x481bd4
<_D2rt14sections_linux12_static_dsosS2rt4util9container36__T5ArrayTPS2rt14sections_linux3DSOZ5Array+4>
   0x0000000000438cbd <+501>:    mov    0x48f0c(%rip),%rcx        # 0x481bd0
<_D2rt14sections_linux12_static_dsosS2rt4util9container36__T5ArrayTPS2rt14sections_l---Type
<return> to continue, or q <return> to quit---
inux3DSOZ5Array>
   0x0000000000438cc4 <+508>:    lea    (%rcx,%rbx,8),%rax
=> 0x0000000000438cc8 <+512>:    mov    %r14,-0x8(%rax)
   0x0000000000438ccc <+516>:    jmp    0x438d31 <_d_dso_registry+617>
   0x0000000000438cce <+518>:    mov    0x8(%r12),%rdx
   0x0000000000438cd3 <+523>:    mov    (%rdx),%rbx
   0x0000000000438cd6 <+526>:    mov    0x48ef3(%rip),%rsi        # 0x481bd0
<_D2rt14sections_linux12_static_dsosS2rt4util9container36__T5ArrayTPS2rt14sections_linux3DSOZ5Array>
   0x0000000000438cdd <+533>:    mov    0x48ef0(%rip),%r14        # 0x481bd4
<_D2rt14sections_linux12_static_dsosS2rt4util9container36__T5ArrayTPS2rt14sections_linux3DSOZ5Array+4>
   0x0000000000438ce4 <+540>:    dec    %r14
   0x0000000000438ce7 <+543>:    mov    %r14,%rdi
   0x0000000000438cea <+546>:    shl    $0x3,%rdi
   0x0000000000438cee <+550>:    callq  0x439040
<_D2rt4util9container8xreallocFPvmZPv>
   0x0000000000438cf3 <+555>:    mov    %rax,0x48ed6(%rip)        # 0x481bd0
<_D2rt14sections_linux12_static_dsosS2rt4util9container36__T5ArrayTPS2rt14sections_linux3DSOZ5Array>
   0x0000000000438cfa <+562>:    mov    %r14,0x48ed3(%rip)        # 0x481bd4
<_D2rt14sections_linux12_static_dsosS2rt4util9container36__T5ArrayTPS2rt14sections_linux3DSOZ5Array+4>
---Type <return> to continue, or q <return> to quit---
   0x0000000000438d01 <+569>:    mov    0x8(%r12),%rcx
   0x0000000000438d06 <+574>:    movq   $0x0,(%rcx)
   0x0000000000438d0d <+581>:    lea    0x40(%rbx),%r13
   0x0000000000438d11 <+585>:    mov    0x0(%r13),%rsi
   0x0000000000438d15 <+589>:    xor    %rdi,%rdi
   0x0000000000438d18 <+592>:    callq  0x439040
<_D2rt4util9container8xreallocFPvmZPv>
   0x0000000000438d1d <+597>:    mov    %rax,0x0(%r13)
   0x0000000000438d21 <+601>:    movq   $0x0,0x8(%r13)
   0x0000000000438d29 <+609>:    mov    %rbx,%rdi
   0x0000000000438d2c <+612>:    callq  0x42b9b0 <free at plt>
   0x0000000000438d31 <+617>:    pop    %r15
   0x0000000000438d33 <+619>:    pop    %r14
   0x0000000000438d35 <+621>:    pop    %r13
   0x0000000000438d37 <+623>:    pop    %r12
   0x0000000000438d39 <+625>:    pop    %rbx
   0x0000000000438d3a <+626>:    mov    %rbp,%rsp
   0x0000000000438d3d <+629>:    pop    %rbp
   0x0000000000438d3e <+630>:    retq   
End of assembler dump.
(gdb) 
#0  0x0000000000438cc8 in _d_dso_registry ()
#1  0x000000000043375f in ?? ()
#2  0x0000000000000001 in ?? ()
#3  0x000000000045a778 in
TypeInfo_PS3std5array17__T8AppenderTAxaZ8Appender4Data.__init() ()
#4  0x00000000004586b8 in ?? ()
#5  0x00000000004588a8 in ?? ()
#6  0x0000000000458190 in ?? ()
#7  0x00000000004586b8 in ?? ()
#8  0x0000000000000040 in ?? ()
#9  0x000000000044fd4d in __libc_csu_init ()
#10 0x00007ffff7617700 in __libc_start_main (main=0x436184 <main>, argc=1, 
    ubp_av=0x7fffffffe198, init=0x44fcf0 <__libc_csu_init>, 
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe188)
    at libc-start.c:185
#11 0x000000000042bcc9 in _start ()
(gdb)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list