Jump to page: 1 24  
Page
Thread overview
[Issue 8936] New: Throwing results in searching the whole directory tree rooted in current directory
Nov 02, 2012
Denis Shelomovskij
Nov 02, 2012
Andrej Mitrovic
Nov 02, 2012
Denis Shelomovskij
Nov 14, 2012
Walter Bright
Nov 14, 2012
Denis Shelomovskij
Nov 15, 2012
Andrej Mitrovic
Nov 15, 2012
Walter Bright
Nov 22, 2012
David Held
Dec 07, 2012
Benjamin Thaut
Dec 07, 2012
Denis Shelomovskij
Dec 07, 2012
Benjamin Thaut
Dec 07, 2012
Andrej Mitrovic
Dec 07, 2012
Benjamin Thaut
Dec 08, 2012
Benjamin Thaut
Dec 23, 2012
Benjamin Thaut
Dec 23, 2012
Andrej Mitrovic
Dec 23, 2012
Andrej Mitrovic
Dec 23, 2012
Andrej Mitrovic
Dec 23, 2012
Benjamin Thaut
Dec 23, 2012
Andrej Mitrovic
Dec 23, 2012
Benjamin Thaut
Dec 23, 2012
Andrej Mitrovic
Dec 23, 2012
Benjamin Thaut
Dec 23, 2012
Andrej Mitrovic
Dec 23, 2012
Benjamin Thaut
Dec 23, 2012
Benjamin Thaut
Dec 23, 2012
Andrej Mitrovic
Dec 23, 2012
Benjamin Thaut
Dec 23, 2012
Andrej Mitrovic
Dec 24, 2012
Benjamin Thaut
Dec 25, 2012
Walter Bright
Dec 25, 2012
Martin Nowak
Feb 10, 2013
Andrej Mitrovic
November 02, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8936

           Summary: Throwing results in searching the whole directory tree
                    rooted in current directory
           Product: D
           Version: D2
          Platform: All
        OS/Version: Windows
            Status: NEW
          Severity: regression
          Priority: P1
         Component: druntime
        AssignedTo: nobody@puremagic.com
        ReportedBy: verylonglogin.reg@gmail.com


--- Comment #0 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2012-11-02 17:11:54 MSK ---
This is catastrophic Windows druntime issue.

Triggering code:
---
void main()
{
    throw new Exception("Ex"); // or Error, or any Throwable
    // try throw new Exception("Ex"); catch { } // same here
}
---

Want something really long? Lunch this on Windows:
---
import std.file;

void main()
{
    chdir(`C:\`);
    try
        // Let's serach the whole C: drive!
        throw new Exception("Ex");
    catch { }
}
---

Since dmd 2.060.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 02, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8936


Alex Rønne Petersen <alex@lycus.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |alex@lycus.org


--- Comment #1 from Alex Rønne Petersen <alex@lycus.org> 2012-11-02 15:13:50 CET ---
I don't have a Windows machine available. Do you know where in druntime this search is being triggered?

This is...kind of bad.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 02, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8936


Andrej Mitrovic <andrej.mitrovich@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrej.mitrovich@gmail.com


--- Comment #2 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2012-11-02 07:18:59 PDT ---
My best bet is that new dbghelp.dll code which tries to find dbghelp.dll is causing the search.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 02, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8936



--- Comment #3 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2012-11-02 17:33:05 MSK ---
Call stack (thanks OllyDbg):
---
Address    Stack      Procedure / arguments
0012E578   7C90D77A   Includes ntdll.KiFastSystemCallRet
0012E57C   7C80ED62   ntdll.ZwQueryDirectoryFile
0012E888   7C8138B7   kernel32.FindFirstFileExW
0012EB1C   59C7117B   kernel32.FindFirstFileA
0012EB20   0012EE90     FileName = ".\D\dmd2.055\html\d\*.*"
0012EB24   0012EC4C     pFindFileData = 0012EC4C
0012EF9C   59C71636   dbghelp.59C7109F
0012F110   59C717C6   ? dbghelp.59C7149F
0012F15C   59C71839   ? dbghelp.59C716F4
0012F17C   59C7B424   ? dbghelp.FindExecutableImageEx
0012F1C0   59C816F7   ? dbghelp.59C7B2D1
0012F32C   59C820BF   dbghelp.59C81652
0012F33C   59C82109   dbghelp.59C82061
0012F37C   59C75332   ? dbghelp.59C820D5
0012F3B0   59C84B93   dbghelp.59C75309
0012F408   59C84CC4   dbghelp.59C84B53
0012F4B4   59C8530F   dbghelp.59C84C5E
0012F4DC   59C8356D   dbghelp.59C852DF
0012F514   00421AF0   Includes dbghelp.59C8356D
0012FDA4   004219B3   test_d2.00421A0C
0012FDD0   0042178D   test_d2.00421974
0012FDDC   004171F4   test_d2.00421778
0012FDEC   0041A546   test_d2.004171E0
0012FDF0   00410CEC   test_d2.0041A530
0012FE08   0040B9FD   test_d2.00410CC4
0012FE18   004082D4   test_d2.0040B9F0
0012FE20   00402082   test_d2.004082C8
0012FE54   0040823A   test_d2.00402010
0012FE68   00407EBC   test_d2.00408228
0012FE98   0040827D   test_d2.00407E54
0012FEAC   00407EBC   test_d2.00408248
0012FEDC   00407E40   test_d2.00407E54
0012FF84   00435311   test_d2.00407BF4
0012FF88   00000001     Arg1 = 00000001
0012FF8C   009303C4     Arg2 = 009303C4
0012FF90   00930400     Arg3 = 00930400
0012FF94   00000000     Arg4 = 00000000
0012FFC4   7C817077   Includes test_d2.00435311
---

`FileName` goes through the whole disk.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 14, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8936


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com


--- Comment #4 from Walter Bright <bugzilla@digitalmars.com> 2012-11-13 22:39:47 PST ---
Any idea what file it's looking for?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 14, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8936



--- Comment #5 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2012-11-14 12:49:12 MSK ---
(In reply to comment #4)
> Any idea what file it's looking for?

Launching "throw-C-release.exe" with code from the second example from description:

Call stack of main thread
Address    Stack      Procedure / arguments
         Called from                   Frame
Call stack of main thread
Address    Stack      Procedure / arguments
         Called from                   Frame
0012D540   7C90D5AA   Includes ntdll.KiFastSystemCallRet
         ntdll.7C90D5A8                0012D838
0012D544   7C80EC96   Includes ntdll.7C90D5AA
         kernel32.7C80EC94             0012D838
0012D83C   7C8138B7   kernel32.FindFirstFileExW
         kernel32.7C8138B2             0012D838
0012DAD0   59C7117B   kernel32.FindFirstFileA
         dbghelp.59C71175              0012DACC
0012DAD4   0012DE44     FileName = ".\Documents and Settings\Denis\Local
Settings\Temp\
0012DAD8   0012DC00     pFindFileData = 0012DC00
0012DF50   59C71636   dbghelp.59C7109F
         dbghelp.59C71631              0012DF4C
0012E0C4   59C717C6   ? dbghelp.59C7149F
         dbghelp.59C717C1              0012E0C0
0012E110   59C71839   ? dbghelp.59C716F4
         dbghelp.59C71834              0012E10C
0012E114   00B27E68     Arg1 = 00B27E68 ASCII "throw-C-release.exe"
0012E118   00B7FEA0     Arg2 = 00B7FEA0
0012E11C   00B27772     Arg3 = 00B27772 ASCII "C:\throw-C-release.exe"
0012E120   59C7ABE7     Arg4 = 59C7ABE7
0012E124   00B27748     Arg5 = 00B27748
0012E128   00000000     Arg6 = 00000000
0012E130   59C7B424   ? dbghelp.FindExecutableImageEx
         dbghelp.59C7B41F              0012E12C
0012E134   00B27E68     Arg1 = 00B27E68 ASCII "throw-C-release.exe"
0012E138   00B7FEA0     Arg2 = 00B7FEA0
0012E13C   00B27772     Arg3 = 00B27772 ASCII "C:\throw-C-release.exe"
0012E140   59C7ABE7     Arg4 = 59C7ABE7
0012E144   00B27748     Arg5 = 00B27748
0012E174   59C816F7   ? dbghelp.59C7B2D1
<same as in comment 3>

MSDN about FindExecutableImageEx function: http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms679343(v=vs.85).aspx

P.S.
Common, OllyDbg if free and easy to use. And probably not the only available
debugger. Everybody can do the same himself.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 15, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8936



--- Comment #6 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2012-11-14 17:24:53 PST ---
Just a guess, but maybe caused by one of these (since they deal with
dbghelp.dll):

https://github.com/D-Programming-Language/druntime/pull/243 https://github.com/D-Programming-Language/druntime/pull/225

It's damn hard to find matching DMD+druntime+phobos versions that compile together for that pull so I can't test these out.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 15, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8936



--- Comment #7 from Walter Bright <bugzilla@digitalmars.com> 2012-11-14 18:50:51 PST ---
(In reply to comment #6)
> It's damn hard to find matching DMD+druntime+phobos versions that compile together for that pull so I can't test these out.

Just use the latest versions of everything, but the older version of the stack trace code.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 22, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8936


David Held <dmd@wyntrmute.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dmd@wyntrmute.com


--- Comment #8 from David Held <dmd@wyntrmute.com> 2012-11-22 02:54:27 PST ---
The root cause is that druntime/core/sys/windows/stacktrace.d::static this()
calls WinAPI's SymInitialize() with a NULL user path.  This results in the
default path:

  %CWD%;%_NT_SYMBOL_PATH%;%_NT_ALTERNATE_SYMBOL_PATH%

as per the MSDN documentation here:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681351%28v=vs.85%29.aspx.
 Unfortunately, I cannot repro this behavior on Windows 7 Home Premium SP1,
dbghelp.dll 6.1.  I suspect that newer versions of dbghelp.dll are simply more
clever than what MSDN states (for instance, if the semantics were changed to
make the default path start with the image location, 99% of all directory
scanning would be eliminated; also, it is pretty silly to not have this as the
default behavior).

Please report which version of dbghelp.dll you are using.  There are likely multiple versions present on your machine, so you can discover the one being used via 'where':

  where dbghelp.dll

It will most likely discover the version in %SystemRoot%\system32.  You can find the version in the file properties.

Assuming that this is truly only a problem with older versions of dbghelp.dll (e.g.: 5.x versions), it is not difficult to simply provide a custom user path starting with the current executable image path.  However, I do not have a means to verify the fix, as I cannot repro the actual problem.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 07, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8936


Benjamin Thaut <code@benjamin-thaut.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |code@benjamin-thaut.de


--- Comment #9 from Benjamin Thaut <code@benjamin-thaut.de> 2012-12-07 09:37:27 PST ---
I don't quite understand the issue here. Why is it a problem that is searches for appropriate .pdb files?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
« First   ‹ Prev
1 2 3 4