[Ruby 1.9-Bug#3886][Assigned] cannot list the pathname of my own modules in backtrace on mswin64

Bug #3886: cannot list the pathname of my own modules in backtrace on
mswin64
http://redmine.ruby-lang.org/issues/show/3886

e$B5/I<<Te(B: Usaku NAKAMURA
e$B%9%F!<%?%9e(B: Assigned, e$BM%@hEYe(B: Low
e$BC4Ev<Te(B: Usaku NAKAMURA, e$B%+%F%4%je(B: core, Target version:
1.9.x
ruby -v: ruby 1.9.3dev (2010-09-29 trunk 29360) [x64-mswin64]

r29352
e$B$K$h$C$F!"e(BWindowse$B$G$be(BSEGVe$B;~Ey$K%P%C%/%H%l!<%9$,=PNO$5e(B
e$B$l$k$h$&$K$J$j$^$7$?$,e(B(e$B$Q$A$Q$A$Q$Ae(B)e$B!“e(B64bite$BHG$@$H!”$J$<$+e(Bruby
e$B<+?H$N%b%8%e!<%k$N%Q%9L>$,=PNO$G$-$F$$$^$;$s!#e(B

e$B%b%8%e!<%k$N%Q%9L>$O!“$=$N%b%8%e!<%kMQ$K%”%m%1!<%H$5$l$F$$$k%Ye(B
e$B!<%9%"%I%l%9$r%O%s%I%k$H$_$J$7$Fe(BGetModuleFileName()e$B$KEO$;$P<he(B
e$BF@$G$-$k$H$$$&2>Dj$K4p$E$$$F<hF@$7$F$$$k$o$1$G$9$,!“e(B
(1) e$B%Y!<%9%”%I%l%9$r@5$7$/<hF@$G$-$F$$$J$$e(B
(2) e$B$=$N2>Dj$Oe(Bx64e$BHGe(BWindowse$B$G$O@.$jN)$D$H$O8B$i$J$$e(B
e$B$N$$$:$l$+$NM}M3$K$h$C$F$&$^$/$$$C$F$$$J$$$h$&$G$9!#e(B

e$B0J>e!"<+J,$,8e$G;W$$=P$9$?$a$N%a%b$G$7$?!#e(B

e$B%A%1%C%He(B #3886 e$B$,99?7$5$l$^$7$?!#e(B (by Usaku NAKAMURA)

e$B%9%F!<%?%9e(B Assignede$B$+$ie(BClosede$B$KJQ99e(B
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B

This issue was solved with changeset r29374.
Usaku, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


http://redmine.ruby-lang.org/issues/show/3886

e$B%A%1%C%He(B #3886 e$B$,99?7$5$l$^$7$?!#e(B (by shintaro kuwamoto)

e$B$A$g$&$I<j85$Ge(BSEGVe$B$7$?$N$G8+$F$^$7$?!#7?@k8@$,0c$&$h$&$G$9!#e(B

Index: …/vm_dump.c

— …/vm_dump.c (e$B%j%S%8%g%se(B 29361)
+++ …/vm_dump.c (e$B:n6H%3%T!<e(B)
@@ -661,7 +661,7 @@
BOOL (WINAPI *pSymInitialize)(HANDLE, const char *, BOOL);
BOOL (WINAPI *pSymCleanup)(HANDLE);
BOOL (WINAPI *pStackWalk64)(DWORD, HANDLE, HANDLE, STACKFRAME64 *,
void *, PREAD_PROCESS_MEMORY_ROUTINE64,
PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64,
PTRANSLATE_ADDRESS_ROUTINE64);

  • BOOL (WINAPI *pSymGetModuleBase64)(HANDLE, DWORD64);
  • DWORD64 (WINAPI *pSymGetModuleBase64)(HANDLE, DWORD64);
    BOOL (WINAPI *pSymFromAddr)(HANDLE, DWORD64, DWORD64 *, SYMBOL_INFO
    *);
    BOOL (WINAPI *pSymGetLineFromAddr64)(HANDLE, DWORD64, DWORD *,
    IMAGEHLP_LINE64 *);
    HANDLE (WINAPI *pOpenThread)(DWORD, BOOL, DWORD);
    @@ -674,7 +674,7 @@
    pSymInitialize = (BOOL (WINAPI *)(HANDLE, const char *,
    BOOL))GetProcAddress(dbghelp, “SymInitialize”);
    pSymCleanup = (BOOL (WINAPI *)(HANDLE))GetProcAddress(dbghelp,
    “SymCleanup”);
    pStackWalk64 = (BOOL (WINAPI *)(DWORD, HANDLE, HANDLE, STACKFRAME64
    *, void *, PREAD_PROCESS_MEMORY_ROUTINE64,
    PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64,
    PTRANSLATE_ADDRESS_ROUTINE64))GetProcAddress(dbghelp, “StackWalk64”);
  • pSymGetModuleBase64 = (BOOL (WINAPI *)(HANDLE,
    DWORD64))GetProcAddress(dbghelp, “SymGetModuleBase64”);
  • pSymGetModuleBase64 = (DWORD64 (WINAPI *)(HANDLE,
    DWORD64))GetProcAddress(dbghelp, “SymGetModuleBase64”);
    pSymFromAddr = (BOOL (WINAPI *)(HANDLE, DWORD64, DWORD64 *,
    SYMBOL_INFO *))GetProcAddress(dbghelp, “SymFromAddr”);
    pSymGetLineFromAddr64 = (BOOL (WINAPI *)(HANDLE, DWORD64, DWORD *,
    IMAGEHLP_LINE64 *))GetProcAddress(dbghelp, “SymGetLineFromAddr64”);
    pOpenThread = (HANDLE (WINAPI *)(DWORD, BOOL,
    DWORD))GetProcAddress(GetModuleHandle(“kernel32.dll”), “OpenThread”);

http://redmine.ruby-lang.org/issues/show/3886