I tried running the demo of Picasa from http://www.lifescapeinc.com/picasa/ under Wine-20040213 and Wine-20040505, but the installer just put up "Out of Memory" boxes :-(
This progam uses some unusual installer app (it announces which one early on when you run it under Windows).
Anyone seen this before?
On Sat, 22 May 2004 06:52:18 -0700, you wrote:
I tried running the demo of Picasa from http://www.lifescapeinc.com/picasa/ under Wine-20040213 and Wine-20040505, but the installer just put up "Out of Memory" boxes :-(
This progam uses some unusual installer app (it announces which one early on when you run it under Windows).
Anyone seen this before?
I do not get out of memory boxes. Here the program tries to open its own program file:
|0009:Call kernel32.CreateFileA(4071f40c "K:\PICASA-SETUP.EXE",40000000,00000000,00000000,00000004,00000080,00000000) ret=00401522 |0009:Call ntdll.RtlInitAnsiString(4071f2c0,4071f40c "K:\PICASA-SETUP.EXE") ret=404f6baf |0009:Ret ntdll.RtlInitAnsiString() retval=00000014 ret=404f6baf |0009:Call ntdll.RtlAnsiStringToUnicodeString(4020dbf8,4071f2c0,00000000) ret=404f6c48 |0009:Ret ntdll.RtlAnsiStringToUnicodeString() retval=00000000 ret=404f6c48 |0009:Call ntdll.RtlIsDosDeviceName_U(4020dc00 L"K:\PICASA-SETUP.EXE") ret=404f8c48 |0009:Ret ntdll.RtlIsDosDeviceName_U() retval=00000000 ret=404f8c48 |0009:Call ntdll.RtlDosPathNameToNtPathName_U(4020dc00 L"K:\PICASA-SETUP.EXE",4071f2a0,00000000,00000000) ret=404f8998 |0009:Ret ntdll.RtlDosPathNameToNtPathName_U() retval=00000001 ret=404f8998 |0009:Call ntdll.NtCreateFile(4071f294,40000000,4071f2a8,4071f298,00000000,00000080,00000000,00000003,00000050,00000000,00000000) ret=404f8a83 |0009:Ret ntdll.NtCreateFile() retval=c0000043 ret=404f8a83 |0009:Call ntdll.RtlNtStatusToDosError(c0000043) ret=404f8aba |0009:Ret ntdll.RtlNtStatusToDosError() retval=00000020 ret=404f8aba |0009:Call ntdll.RtlFreeUnicodeString(4071f2a0) ret=404f8ace |0009:Ret ntdll.RtlFreeUnicodeString() retval=00000001 ret=404f8ace |0009:Ret kernel32.CreateFileA() retval=ffffffff ret=00401522
Which fails because of the sharing violation. The program ignores it and tries to write something:
|0009:Call kernel32.WriteFile(ffffffff,0041137c,003893c8,4071f520,00000000) ret=00401539 |0009:Call ntdll.NtWriteFile(ffffffff,00000000,00000000,00000000,4071f2f0,0041137c,003893c8,00000000,00000000) ret=404f73dc |0009:Ret ntdll.NtWriteFile() retval=c0000024 ret=404f73dc |0009:Call ntdll.RtlNtStatusToDosError(c0000024) ret=404f7408 |0009:Ret ntdll.RtlNtStatusToDosError() retval=00000006 ret=404f7408 |0009:Ret kernel32.WriteFile() retval=00000000 ret=00401539
fails of course on the invalid handle.
|0009:Call kernel32.SetUnhandledExceptionFilter(00000000) ret=0040804c |0009:Ret kernel32.SetUnhandledExceptionFilter() retval=00407fe9 ret=0040804c |0009:Call kernel32.ExitProcess(00000000) ret=00405709
and now it gives up.
Rein.
On Sun, 23 May 2004 09:18:59 +0200, you wrote:
Anyone seen this before?
I do not get out of memory boxes. Here the program tries to open its own program file:
Stupid program, it first copies itself to the %TEMP% directory. I happened to run it from there already.
Changed dir and I see the memory boxes now.
Rein.
On Sunday 23 May 2004 10:07, Rein Klazes wrote:
I do not get out of memory boxes. Here the program tries to open its own program file:
Stupid program, it first copies itself to the %TEMP% directory. I happened to run it from there already.
Then it extracts another executable into %TEMP%, sp7zFh5.exe, and runs that. This one has a parameter /SILENT that will show a more interesting error message:
[wine-cvs]$ ./wine ~/.wine/fake_windows/Windows/Temp/sp7zFh5.exe /SILENT err:seh:setup_exception stack overflow 0 bytes in thread 0009 eip 551ae506 esp 55761000 stack 0x55760000-0x55860000
Overflow by 0 bytes? 16MB of stack not enough? Certainly looks interesting...
-Hans
On Tue, 25 May 2004 12:59:42 +0200, you wrote:
[wine-cvs]$ ./wine ~/.wine/fake_windows/Windows/Temp/sp7zFh5.exe /SILENT err:seh:setup_exception stack overflow 0 bytes in thread 0009 eip 551ae506 esp 55761000 stack 0x55760000-0x55860000
Overflow by 0 bytes? 16MB of stack not enough? Certainly looks interesting...
I have seen this after an endless recursive call (MENU_FindItem called with a menu that finds its hmenu as a submenu).
It would be nice if the debugger could trap this. If the function does not contain TRACE's it is quite difficult to find the offending function. Especially when debugging remotely.
Rein.
On Sat, 22 May 2004 06:52:18 -0700, Dan Kegel wrote:
I tried running the demo of Picasa from http://www.lifescapeinc.com/picasa/ under Wine-20040213 and Wine-20040505, but the installer just put up "Out of Memory" boxes :-(
This progam uses some unusual installer app (it announces which one early on when you run it under Windows).
Anyone seen this before?
I was going to take a look at this but it turns out my Wine CVS install is busted, for some reason it's not loading user32.dll correctly :(
21:38:07 ~ :( regedit fixme:seh:EXC_RtlRaiseException call to unimplemented function user32.dll.LoadStringA wine: Unhandled exception (thread 0009), starting debugger... err:win:GetDesktopWindow Wine init error: either you're trying to use an invalid native USER.EXE config, or some graphics/GUI libraries or DLLs didn't initialize properly. Aborting.
But anyway. From the logs you may want to try hacking in support for CSIDL_PROGRAMS to SHGetSpecialFolderLocation(), "C:\Windows\Start Menu" is fine to test with. If that fixes it you need to write the proper fix of course ...
thanks -mike
Dan Kegel wrote:
I tried running the demo of Picasa from http://www.lifescapeinc.com/picasa/ under Wine-20040213 and Wine-20040505, but the installer just put up "Out of Memory" boxes :-(
Mike H. suggested hacking in CSIDL_PROGRAMS to see if that got us further, so:
--- wine-20040505.old/dlls/shell32/shellpath.c Wed Apr 7 12:45:48 2004 +++ wine-20040505/dlls/shell32/shellpath.c Sun May 23 21:52:44 2004 @@ -732,9 +732,9 @@ NULL, }, { /* CSIDL_PROGRAMS */ - 0, HKEY_DISALLOWED, - NULL, + 0, HKEY_WINDOWSPATH, NULL, + "Start Menu\Programs", }, { /* CSIDL_CONTROLS (.CPL files) */ 10, HKLM,
And sure enough, it gets further. Now it seems to fail with the same error box that the Astrum installer demo http://www.thraexsoftware.com/download/aiw.exe fails with.
My WINEDEBUG-fu is no match for this. I can never keep all those damn channels and modes and plusses and dashes straight. I'll just go back to hacking on crosstool until Mike has another clever hint :-) - Dan
Dan Kegel wrote:
Mike H. suggested hacking in CSIDL_PROGRAMS to see if that got us further, so: And sure enough, it gets further. Now it seems to fail with the same error box that the Astrum installer demo fails with.
I'm an idiot, I ran the wrong thing. Scratch that, let me really try it...
Dan Kegel wrote:
Dan Kegel wrote:
I tried running the demo of Picasa from http://www.lifescapeinc.com/picasa/ under Wine-20040213 and Wine-20040505, but the installer just put up "Out of Memory" boxes :-(
Mike H. suggested hacking in CSIDL_PROGRAMS to see if that got us further.
While looking at this, I realized there's an uninitialized variable problem (how come the compiler doesn't catch this?). This patch both fixes that and hacks in the value, I think:
--- wine-20040505.old/dlls/shell32/shellpath.c Wed Apr 7 12:45:48 2004 +++ wine-20040505/dlls/shell32/shellpath.c Sun May 23 22:22:16 2004 @@ -732,9 +732,9 @@ NULL, }, { /* CSIDL_PROGRAMS */ - 0, HKEY_DISALLOWED, - NULL, + 0, HKEY_WINDOWSPATH, NULL, + "Start Menu\Programs", /* FIXME */ }, { /* CSIDL_CONTROLS (.CPL files) */ 10, HKLM, @@ -1073,6 +1073,8 @@ if (CSIDL_Data[folder].hRootKey == HKEY_NONEXISTENT) return S_FALSE;
+ MultiByteToWideChar(CP_ACP, 0, CSIDL_Data[folder].szDefaultPath, -1, szDefaultPath, MAX_PATH); + /* Special case for some values that don't exist in registry */ if (CSIDL_Data[folder].hRootKey == HKEY_WINDOWSPATH) { @@ -1085,7 +1087,6 @@ dwCsidlFlags = CSIDL_Data[folder].dwFlags; hRootKey = CSIDL_Data[folder].hRootKey; MultiByteToWideChar(CP_ACP, 0, CSIDL_Data[folder].szValueName, -1, szValueName, MAX_PATH); - MultiByteToWideChar(CP_ACP, 0, CSIDL_Data[folder].szDefaultPath, -1, szDefaultPath, MAX_PATH);
if (dwCsidlFlags & CSIDL_MYFLAG_SHFOLDER) {
Doesn't help the picasa app noticably, though. - Dan