D-Programming-Language/dmd — pull request #3189 by Ingrater (2014-02-03 09:07:59+00:00)
Title: Added -gms option to optimize debug symbols for microsoft debuggers

When this optimization is enabled, '.' is replaced with '@' for type names within the symbolic debug information, becuase the '.' character confuses the visual studio debugger. Also when passing D-Arrays as arguments to functions on 64-bit, they have to be passed as pointers because the ABI demands so. This however triggers a bug inside the visual studio debugger, which causes D arrays to be incorrectly displayed when passed as a function argument. Marking the array as (c++) reference instead of pointer fixes this problem.

The calls to cv_namestring within cv8.c have been added to ensure that all releveant name strings go through cv_namestring before they are written to the object file, so they can be patched as needed.