digitalmars.D.learn - dmd crash help
- strtr (5/5) Feb 01 2010 dmd(1.048/55/56) crashed on me:
- Don (9/14) Feb 02 2010 Silent crashes are the worst compiler bugs. I'm desperately trying to
- strtr (10/27) Feb 02 2010 Won't windows tell me about segfaults and buffer overflows?
- BCS (6/13) Feb 02 2010 Stopping mid word makes me think that the output buffer didn't get flush...
- BCS (8/14) Feb 02 2010 If you can try it on linux it's not to hard to build a debug version of ...
- strtr (2/15) Feb 02 2010 I didn't even know it was possible to build dmd :)
- Lars T. Kyllingstad (4/21) Feb 03 2010 Starting with versions 1.041 and 2.026, the DMD source code is included
- strtr (4/6) Feb 02 2010 I keep forgetting my best method yet : compiling module by module until ...
- Don (3/12) Feb 03 2010 Nasty. Please post it to Bugzilla when you track it down. It's really
- strtr (45/50) Feb 03 2010 Everything is working again and I have found this piece of code which ch...
- Don (7/66) Feb 04 2010 Excellent! I can reproduce it.
- Don (2/70) Feb 04 2010 And it's a regression, introduced in DMD1.046. It worked in 1.045.
- strtr (4/12) Feb 04 2010 What is up with the specific length of the enum? If you remove one eleme...
dmd(1.048/55/56) crashed on me: AppName: dmd.exe AppVer: 0.0.0.0 ModName: unknown ModVer: 0.0.0.0 Offset: 00000002 There is a lot of crash data but I do not know where to start looking. I've also tried finding which part of the code is responsible, but I haven't found it yet.
Feb 01 2010
strtr wrote:dmd(1.048/55/56) crashed on me: AppName: dmd.exe AppVer: 0.0.0.0 ModName: unknown ModVer: 0.0.0.0 Offset: 00000002 There is a lot of crash data but I do not know where to start looking. I've also tried finding which part of the code is responsible, but I haven't found it yet.Silent crashes are the worst compiler bugs. I'm desperately trying to eradicate them all, so please submit a test case if you can. Known bugs which can cause a segfault or stack overflow on Windows DMD1 are: 3493 2315 The crash data doesn't tell you anything useful. Try compiling with dmd -v, and it should give you a little bit of a hint of what it was doing.
Feb 02 2010
Don Wrote:strtr wrote:Won't windows tell me about segfaults and buffer overflows? The same code triggered the Data Execution Prevention on a different machine (also winXP)dmd(1.048/55/56) crashed on me: AppName: dmd.exe AppVer: 0.0.0.0 ModName: unknown ModVer: 0.0.0.0 Offset: 00000002 There is a lot of crash data but I do not know where to start looking. I've also tried finding which part of the code is responsible, but I haven't found it yet.Silent crashes are the worst compiler bugs. I'm desperately trying to eradicate them all, so please submit a test case if you can. Known bugs which can cause a segfault or stack overflow on Windows DMD1 are: 3493 2315The crash data doesn't tell you anything useful. Try compiling with dmd -v, and it should give you a little bit of a hint of what it was doing.-v ended like this : semantic Cg_shader semantic abgr semantic bgra seman This is code within Derelict I think. Strange sudden break..
Feb 02 2010
Hello Strtr,-v ended like this : semantic Cg_shader semantic abgr semantic bgra seman This is code within Derelict I think. Strange sudden break..Stopping mid word makes me think that the output buffer didn't get flushed so something failed after the next to last line, but you don't know how far after. -- <IXOYE><
Feb 02 2010
Hello Strtr,dmd(1.048/55/56) crashed on me: AppName: dmd.exe AppVer: 0.0.0.0 ModName: unknown ModVer: 0.0.0.0 Offset: 00000002 There is a lot of crash data but I do not know where to start looking. I've also tried finding which part of the code is responsible, but I haven't found it yet.If you can try it on linux it's not to hard to build a debug version of dmd and run it under the debugger. That will at least give you a filename/line number for the bug report and with a little thinking and a stack trace you can take a guess at what code is causing the failure. I guess the same things can be done on windows (using windbg) but I've never done it there. -- <IXOYE><
Feb 02 2010
BCS Wrote:Hello Strtr, If you can try it on linux it's not to hard to build a debug version of dmd and run it under the debugger. That will at least give you a filename/line number for the bug report and with a little thinking and a stack trace you can take a guess at what code is causing the failure. I guess the same things can be done on windows (using windbg) but I've never done it there. -- <IXOYE><I didn't even know it was possible to build dmd :)
Feb 02 2010
strtr wrote:BCS Wrote:Starting with versions 1.041 and 2.026, the DMD source code is included in the zip file. :) -LarsHello Strtr, If you can try it on linux it's not to hard to build a debug version of dmd and run it under the debugger. That will at least give you a filename/line number for the bug report and with a little thinking and a stack trace you can take a guess at what code is causing the failure. I guess the same things can be done on windows (using windbg) but I've never done it there. -- <IXOYE><I didn't even know it was possible to build dmd :)
Feb 03 2010
strtr Wrote:dmd(1.048/55/56) crashed on me: I've also tried finding which part of the code is responsible, but I haven't found it yet.I keep forgetting my best method yet : compiling module by module until something strange comes up, or in this case, the compiler chokes. Seems to be related to AAs and invalid code being imported multiple times, or something :) Maybe tomorrow..
Feb 02 2010
strtr wrote:strtr Wrote:Nasty. Please post it to Bugzilla when you track it down. It's really important to get rid of these nightmare bugs.dmd(1.048/55/56) crashed on me: I've also tried finding which part of the code is responsible, but I haven't found it yet.I keep forgetting my best method yet : compiling module by module until something strange comes up, or in this case, the compiler chokes. Seems to be related to AAs and invalid code being imported multiple times, or something :) Maybe tomorrow..
Feb 03 2010
strtr Wrote:dmd(1.048/55/56) crashed on me: AppName: dmd.exe AppVer: 0.0.0.0 ModName: unknown ModVer: 0.0.0.0 Offset: 00000002 There is a lot of crash data but I do not know where to start looking. I've also tried finding which part of the code is responsible, but I haven't found it yet.Everything is working again and I have found this piece of code which chokes the compiler. module main; //Digital Mars D Compiler v1.056 //bud_win_3.04.exe -full -cleanup enum ENUM { N0 = 1, //N0 = x; crashes for some values of x, ie. 1 and 10. and not for others ie. 3. N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15, N16, N17, N18 } const char[][ ENUM.max + 1 ] ENUM_NAME = [ ENUM.N0 : "N0", ]; void main() { char[] text = `Hi`; switch(text) { //case `N0`: //this works case ENUM_NAME[ENUM.N0]: //this doesn't //return ENUM.N0; default: break; } } I will post it together with my previous reported enum incomprehensibility bug if it can't be further minimized.
Feb 03 2010
strtr wrote:strtr Wrote:Excellent! I can reproduce it. The D2 version of this code (char[] text = `Hi`.dup;) segfaults in Expression::arraySyntaxCopy() in expression.c, with evidence of memory corruption. The D1 version does *not* segfault there. In fact the code compiles with the debug version of DMD1! I think the array literal isn't getting initialized properly.dmd(1.048/55/56) crashed on me: AppName: dmd.exe AppVer: 0.0.0.0 ModName: unknown ModVer: 0.0.0.0 Offset: 00000002 There is a lot of crash data but I do not know where to start looking. I've also tried finding which part of the code is responsible, but I haven't found it yet.Everything is working again and I have found this piece of code which chokes the compiler. module main; //Digital Mars D Compiler v1.056 //bud_win_3.04.exe -full -cleanup enum ENUM { N0 = 1, //N0 = x; crashes for some values of x, ie. 1 and 10. and not for others ie. 3. N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15, N16, N17, N18 } const char[][ ENUM.max + 1 ] ENUM_NAME = [ ENUM.N0 : "N0", ]; void main() { char[] text = `Hi`; switch(text) { //case `N0`: //this works case ENUM_NAME[ENUM.N0]: //this doesn't //return ENUM.N0; default: break; } } I will post it together with my previous reported enum incomprehensibility bug if it can't be further minimized.
Feb 04 2010
Don wrote:strtr wrote:And it's a regression, introduced in DMD1.046. It worked in 1.045.strtr Wrote:Excellent! I can reproduce it. The D2 version of this code (char[] text = `Hi`.dup;) segfaults in Expression::arraySyntaxCopy() in expression.c, with evidence of memory corruption. The D1 version does *not* segfault there. In fact the code compiles with the debug version of DMD1! I think the array literal isn't getting initialized properly.dmd(1.048/55/56) crashed on me: AppName: dmd.exe AppVer: 0.0.0.0 ModName: unknown ModVer: 0.0.0.0 Offset: 00000002 There is a lot of crash data but I do not know where to start looking. I've also tried finding which part of the code is responsible, but I haven't found it yet.Everything is working again and I have found this piece of code which chokes the compiler. module main; //Digital Mars D Compiler v1.056 //bud_win_3.04.exe -full -cleanup enum ENUM { N0 = 1, //N0 = x; crashes for some values of x, ie. 1 and 10. and not for others ie. 3. N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15, N16, N17, N18 } const char[][ ENUM.max + 1 ] ENUM_NAME = [ ENUM.N0 : "N0", ]; void main() { char[] text = `Hi`; switch(text) { //case `N0`: //this works case ENUM_NAME[ENUM.N0]: //this doesn't //return ENUM.N0; default: break; } } I will post it together with my previous reported enum incomprehensibility bug if it can't be further minimized.
Feb 04 2010
Don Wrote:Excellent! I can reproduce it. The D2 version of this code (char[] text = `Hi`.dup;) segfaults in Expression::arraySyntaxCopy() in expression.c, with evidence of memoryI'd love there to be a built debug version in the zip.corruption. The D1 version does *not* segfault there. In fact the codecompiles with the debug version of DMD1!I think the array literal isn't getting initialized properly.What is up with the specific length of the enum? If you remove one element it compiles just fine.1.048 wasn't far enough back :)And it's a regression, introduced in DMD1.046. It worked in 1.045.
Feb 04 2010
I'd love there to be a built debug version in the zip.Building is straightforward. Just run make -f*youros*.mak. Works flawlessly out of the box for me with dmc on windows.
Feb 04 2010
Trass3r Wrote:Building is straightforward. Just run make -f*youros*.mak.Should I be offended ?Works flawlessly out of the box for me with dmc on windows.Took me only a few minutes, thanks. But I had to install a compiler to a different language ;)
Feb 04 2010
Should I be offended ?Nope. I just mentioned it cause I experience it very seldom that something compiles that painlessly out of the box.
Feb 04 2010
Trass3r Wrote:Sorry, it was a lame joke. At first glance it looked like self-censoring.Building is straightforward. Just run make -f*youros*.mak.Should I be offended ? ;)Nope. I just mentioned it cause I experience it very seldom that something compiles that painlessly out of the box.
Feb 04 2010
strtr wrote:Don Wrote:Bugzilla 3769. Very nasty.Excellent! I can reproduce it. The D2 version of this code (char[] text = `Hi`.dup;) segfaults in Expression::arraySyntaxCopy() in expression.c, with evidence of memoryI'd love there to be a built debug version in the zip.corruption. The D1 version does *not* segfault there. In fact the codecompiles with the debug version of DMD1!I think the array literal isn't getting initialized properly.What is up with the specific length of the enum? If you remove one element it compiles just fine.
Feb 05 2010
Don wrote:strtr wrote:And it's fixed in svn. Will be in the next release.Don Wrote:Bugzilla 3769. Very nasty.Excellent! I can reproduce it. The D2 version of this code (char[] text = `Hi`.dup;) segfaults in Expression::arraySyntaxCopy() in expression.c, with evidence of memoryI'd love there to be a built debug version in the zip.corruption. The D1 version does *not* segfault there. In fact the codecompiles with the debug version of DMD1!I think the array literal isn't getting initialized properly.What is up with the specific length of the enum? If you remove one element it compiles just fine.
Feb 05 2010