[Issue 10746] New: Win64: corrupt debug info with very long symbols

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Aug 2 22:52:47 PDT 2013


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

           Summary: Win64: corrupt debug info with very long symbols
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: r.sagitario at gmx.de


--- Comment #0 from Rainer Schuetze <r.sagitario at gmx.de> 2013-08-02 22:52:46 PDT ---
Here's some code to create a symbol name that is longer than 64kB:

module test;

template TypeTuple(TList...)
{
    alias TList TypeTuple;
}

@property void assertCTFEable(alias dg)()
{
    static assert({ dg(); return true; }());
    dg();
}

alias TypeTuple!(0,1,2,3,4,5,6,7,8,9) T10;
alias TypeTuple!(T10,T10,T10,T10,T10,T10,T10,T10,T10,T10) T100;
alias TypeTuple!(T100,T100,T100,T100,T100,T100,T100,T100,T100,T100) T1000;

string to_string(string s) { return s; }

void foo()
{
    assertCTFEable!(
    //auto dg = (
    {
    foreach (i; TypeTuple!(T100,T100,T100,T100,T100,T100,T100,
                           T10,T10,T10,T10,T10,T10,
                           0))
    {
        assert(to_string("hello world") ==
               to_string("hello world"));
    }
    });
}

void main() {}

build with "dmd -g -m64 test.d" to get

test.obj : fatal error LNK1103: debugging information corrupt; recompile module
--- errorlevel 1103

or with a slightly longer symbol:
LINK : fatal error LNK1318: Unexpected PDB error; RPC (23) '(0x000006BA)'
--- errorlevel 1318

This is a reduced test case from the std.string unittests.

-- 
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