[Issue 16543] New: dmd segfaults when given elf lib on os x

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Sun Sep 25 15:42:06 PDT 2016


https://issues.dlang.org/show_bug.cgi?id=16543

          Issue ID: 16543
           Summary: dmd segfaults when given elf lib on os x
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Mac OS X
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: john.loughran.colvin at gmail.com

Created attachment 1616
  --> https://issues.dlang.org/attachment.cgi?id=1616&action=edit
the offending elf archive

The attached ELF archive file causes dmd to segfault on OS X if you run this:

dmd -lib liblzf.a

Here's backtrace and disassembly:

* thread #1: tid = 0xbb145, 0x000000010014fbcd dmd`Port::readlongLE(void*) + 5,
queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1,
address=0x3)
    frame #0: 0x000000010014fbcd dmd`Port::readlongLE(void*) + 5
dmd`Port::readlongLE:
->  0x10014fbcd <+5>:  movzbl 0x3(%rdi), %eax
    0x10014fbd1 <+9>:  shll   $0x8, %eax
    0x10014fbd4 <+12>: movzbl 0x2(%rdi), %ecx
    0x10014fbd8 <+16>: orl    %ecx, %eax

(lldb) bt all
* thread #1: tid = 0xbb145, 0x000000010014fbcd dmd`Port::readlongLE(void*) + 5,
queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1,
address=0x3)
  * frame #0: 0x000000010014fbcd dmd`Port::readlongLE(void*) + 5
    frame #1: 0x000000010012f6bf dmd`D4ddmd7libmach7LibMach9addObjectMFPxaxAhZv
+ 1223
    frame #2: 0x00000001000db7ed dmd`D4ddmd4mars7tryMainFmPPxaZi + 14205
    frame #3: 0x00000001000030e3 dmd`_Dmain + 39
    frame #4: 0x000000010023e260
dmd`D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv + 40
    frame #5: 0x000000010023e194
dmd`D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ7tryExecMFMDFZvZv + 36
    frame #6: 0x000000010023e205
dmd`D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZv + 45
    frame #7: 0x000000010023e194
dmd`D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ7tryExecMFMDFZvZv + 36
    frame #8: 0x000000010023e0fa dmd`_d_run_main + 498
    frame #9: 0x000000010000317c dmd`main + 16
    frame #10: 0x0000000100001724 dmd`start + 52
(lldb) disas
dmd`Port::readlongLE:
    0x10014fbc8 <+0>:  pushq  %rbp
    0x10014fbc9 <+1>:  movq   %rsp, %rbp
    0x10014fbcc <+4>:  pushq  %rbx
->  0x10014fbcd <+5>:  movzbl 0x3(%rdi), %eax
    0x10014fbd1 <+9>:  shll   $0x8, %eax
    0x10014fbd4 <+12>: movzbl 0x2(%rdi), %ecx
    0x10014fbd8 <+16>: orl    %ecx, %eax
    0x10014fbda <+18>: shll   $0x8, %eax
    0x10014fbdd <+21>: movzbl 0x1(%rdi), %edx
    0x10014fbe1 <+25>: orl    %edx, %eax
    0x10014fbe3 <+27>: shll   $0x8, %eax
    0x10014fbe6 <+30>: movzbl (%rdi), %ebx
    0x10014fbe9 <+33>: orl    %ebx, %eax
    0x10014fbeb <+35>: popq   %rbx
    0x10014fbec <+36>: popq   %rbp
    0x10014fbed <+37>: retq   
    0x10014fbee <+38>: nop    
(lldb)

--


More information about the Digitalmars-d-bugs mailing list