Summary: Random crashes / heisenbugs caused by dmd commit 478
Keywords: patch, wrong-code
--- Comment #0 from nfx...@gmail.com 2010-05-19 15:46:03 PDT ---
This bug report is for dmd 1.061. (Bugzilla doesn't list the newer dmd
Older versions are not affected.
Compiling and running a mid-sized project with dmd 1.061, I experience random
segfaults and memory corruption. I have no clue what it causes, I have no test
case, and I don't know how to progress further.
One symptom was that looking up an associative array string key crashed in
Tango's murmur hash routine. Outputting the string showed it was corrupted
(even though I don't know why the string could be successfully printed, but the
hash routine failed.) Another symptom was that taking the address of a virtual
function from a valid, non-null object references yielded a corrupted delegate:
the .funcptr contained something like 0x6xxxxxxx, which is way off the normal
function addresses around 0x8xxxxxx. Which crash exactly happened first changed
as I inserted print calls for debugging.
However, I could track down what change exactly caused this: it's dmd commit
478 (http://dsource.org/projects/dmd/changeset/478). Revision 477 still worked
Undoing that commit makes it work with dmd 1.061, and I suggest the inverse
patch as the solution.
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------