As of DMD 2.047, the CodeView debug information contains file names as specified on the command line, i.e. most of the time relative paths. According to the omf-specification, the full path should be specified in the THEADR record. This makes it much easier for debuggers to find the correct source modules and can avoid ambiguities. Here's a patch (filespec.c only contains an unusable version of making a path absolute): Index: cgobj.c =================================================================== --- cgobj.c (revision 576) +++ cgobj.c (working copy) @@ -17,6 +17,7 @@ #include <stdlib.h> #include <malloc.h> #include <ctype.h> +#include <direct.h> #include "filespec.h" @@ -1249,7 +1250,20 @@ void obj_theadr(const char *modname) { char *theadr; int i; + char absname[260]; + if(modname[0] != '\\' && modname[0] != '/' && !(modname[0] && modname[1] == ':')) + { + if(getcwd(absname, sizeof(absname))) + { + int len = strlen(absname); + if(absname[len - 1] != '\\' && absname[len - 1] != '/') + absname[len++] = '\\'; + strcpy(absname + len, modname); + modname = absname; + } + } + //printf("obj_theadr(%s)\n", modname); theadr = (char *)alloca(ONS_OHD + strlen(modname)); i = obj_namestring(theadr,modname);
https://github.com/D-Programming-Language/dmd/commit/a73564e2a477928694cbe88d724e8b8780040455 https://github.com/D-Programming-Language/dmd/commit/7ea404b43d928966e151d9bdce57f908a433dcb5
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル