https://bugs.winehq.org/show_bug.cgi?id=31145
--- Comment #16 from Damjan Jovanovic damjan.jov@gmail.com --- A +shell trace isn't very revealing, but we can use the fact that the MessageBox is modal, making the stack trace to it visible. "bt all" in winedbg gives us:
---snip--- 9 0x6ed6c3cf MessageBoxW+0x5e(text=<couldn't compute location>, title=<couldn't compute location>, type=<couldn't compute location>) [Z:\Wine\wine\dlls\user32\msgbox.c:441] in user32 (0x0021d118) 10 0x6354314a in shell32 (+0x83149) (0x0021e158) 11 0x63544343 in shell32 (+0x84342) (0x0021f938) 12 0x6354468b in shell32 (+0x8468a) (0x0021f958) 13 0x00406a4e EntryPoint+0xffffffff() in windirstat (0x0021f9dc) ---snip---
So the MessageBox is called from somewhere in shell32. A grep through there, and eliminates the places that place a hardcoded string as the message, leaves us with few candidates. Hacking the remaining places to log a FIXME before each MessageBox, we find it's called from:
do_error_dialog() which is called in the "out:" part of SHELL_execute()
It looks like some kind of bug in SHELL_execute(), in handling the variation of parameters passed by WinDirStat.