[Issue 4130] DMD crashes if it has to compile a project which is too complex

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Apr 28 12:43:08 PDT 2010


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



--- Comment #13 from Torsten <Globe13.Trotter17 at gmx.de> 2010-04-28 12:43:06 PDT ---
I made a mistake while compiling dmd: I did not call "make -f linux.mak clean"
so the old object files have been used. 
Now dmd crashes at a different position ("seg" is still negative):

Program received signal SIGSEGV, Segmentation fault.
0x081824bf in reftoident (seg=-32768, offset=28, s=0x1def161c, val=0, flags=16)
at backend/elfobj.c:2399
2399        int segtyp = MAP_SEG2TYP(seg);
Current language:  auto; currently c++
(gdb) bt all
No symbol "all" in current context.
(gdb) bt full
#0  0x081824bf in reftoident (seg=-32768, offset=28, s=0x1def161c, val=0,
flags=16) at backend/elfobj.c:2399
    buf = (Outbuffer *) 0x2fd94d
    relinfo = 3214229704
    refseg = 4075508
    segtyp = 1
    ty = 502252264
    external = true
#1  0x08095a29 in searchfixlist (s=0x1def161c) at backend/cod3.c:4232
    lp = (fixlist **) 0x81c1f04
    p = (fixlist *) 0x1defc7c8
#2  0x08180c5d in obj_comdat (s=0x1def161c) at backend/elfobj.c:1493
    prefix = 0x81b070f ".data."
    type = 1
    flags = 3
#3  0x0812cd6a in outdata (s=0x1def161c) at backend/out.c:302
    dt = (dt_t *) 0x0
    datasize = 92
    a = 0
    offset = 76
    flags = 16
    p = 0x2 <Address 0x2 out of bounds>
    tls = 0
    dtstart = (dt_t *) 0x1901f9f8
    seg = 32768
    ty = 90
#4  0x08168f2d in ClassDeclaration::toObjFile (this=0xcc8a720, multiobj=0) at
toobj.c:701
    offset = 76
    dt = (dt_t *) 0x1901f9f8
    flags = 44
    sinit = (Symbol *) 0x1def1884
    scclass = 7 '\a'
    __PRETTY_FUNCTION__ = "virtual void ClassDeclaration::toObjFile(int)"
    cd = (class ClassDeclaration *) 0x0
    bvtbl = {<Object> = {_vptr.Object = 0x8183728}, dim = 0, allocdim = 0, data
= 0x0}
    i = 23
    name = 0x1defc230
"framework.ag.db.DFForeignColumn.DFForeignColumn!(AGGoodsCost,AGGoodsCost).DFForeignColumn"
    namelen = 89
#5  0x0815afd3 in TemplateInstance::toObjFile (this=0xac83fd8, multiobj=0) at
template.c:4274
    s = (class Dsymbol *) 0xcc8a720
    i = 0
#6  0x081682e5 in ClassDeclaration::toObjFile (this=0xac828d0, multiobj=0) at
toobj.c:241
    member = (class Dsymbol *) 0xac83fd8
    offset = 501084976
    dt = (dt_t *) 0xbf954358
    flags = 12
    sinit = (Symbol *) 0x9
    scclass = 6 '\006'
    __PRETTY_FUNCTION__ = "virtual void ClassDeclaration::toObjFile(int)"
    cd = (class ClassDeclaration *) 0x1
    bvtbl = {<Object> = {_vptr.Object = 0x27}, dim = 158586784, allocdim = 0,
data = 0x0}
    i = 102
    name = 0x10 <Address 0x10 out of bounds>
    namelen = 180753736
#7  0x080f9073 in Module::genobjfile (this=0x973ac00, multiobj=0) at glue.c:267
    member = (class Dsymbol *) 0xac828d0
    i = 20
    __PRETTY_FUNCTION__ = "void Module::genobjfile(int)"
---Type <return> to continue, or q <return> to quit---
#8  0x081160c9 in main (argc=385, argv=0x9701120) at mars.c:1234
    firstmodule = 0
    aw = (AsyncRead *) 0x973d988
    anydocfiles = 0
    library = (Library *) 0x0
    files = {<Object> = {_vptr.Object = 0x8183728}, dim = 371, allocdim = 382,
data = 0x97007d8}
    p = 0xbf959502 "DSocket.d"
    m = (class Module *) 0x973ac00
    argcstart = 383
    status = 0
    setdebuglib = 0
    modules = {<Object> = {_vptr.Object = 0x8183728}, dim = 371, allocdim =
371, data = 0x9709ab8}
    __PRETTY_FUNCTION__ = "int main(int, char**)"
    i = 350
    libmodules = {<Object> = {_vptr.Object = 0x8183728}, dim = 0, allocdim = 0,
data = 0x0}
(gdb) 
(gdb) whatis seg
type = int
(gdb) p seg
$1 = -32768
(gdb) p s
$2 = (Symbol *) 0x1def161c
(gdb) p s->Sseg
$3 = 32769
(gdb) whatis s->Sseg
type = int
(gdb) p p->Lseg
No symbol "p" in current context.

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