cmd:batch: Check for a context is added
Anatoly Lyutin
vostok at etersoft.ru
Tue Jul 24 02:57:06 CDT 2007
Ann & Jason Edmeades wrote:
>> We need to check context before than refer to context -> skip_rest .
>>
>
> But we have just referred to it higher up, and I didn't think it was valid
> to get into this routine without a context.
>
> Whats the problem you are trying to fix?
>
I run a program which uses a *.bat files via "wine wineconsole
--backend=user start program.bat" and this program runs well but after
exit it program fails with:
Backtrace:
=>1 0x7ed518e5 WCMD_batch+0x105(file=0x346e1c, command=0x16d038, called=0x0,
startLabel=0x0, pgmHandle=0xffffffff) [/srv/vostok/Projects/wi
2 0x7ed5e14c WCMD_run_program+0x85c(command=0x16d038, called=0x0)
[/srv/vostok/Projects/wine/programs/cmd/wcmdmain.c:1056] in cmd (0x0034
3 0x7ed5e63e WCMD_process_command+0x28e(command=0x167580, cmdList=0x34f5e0)
[/srv/vostok/Projects/wine/programs/cmd/wcmdmain.c:813] in cm
4 0x7ed53f26 WCMD_execute+0x1b6(orig_cmd=<register EDI not in topmost frame>,
param=0x0, subst=0x0, cmdList=0x34f5e0) [/srv/vostok/Projec
5 0x7ed5bcc0 WCMD_process_commands+0x90(thisCmd=0x167568, oneBracket=0x0,
var=<register EDI not in topmost frame>, val=0x0) [/srv/vostok/
6 0x7ed5d6f3 wmain+0xa83(argc=0x3, argvW=0x110338)
[/srv/vostok/Projects/wine/programs/cmd/wcmdmain.c:328] in cmd (0x0034fee8)
7 0x7ed5fd5e __wine_spec_exe_wentry+0x4e(peb=0x7ffdf000)
[/srv/vostok/Projects/wine/dlls/winecrt0/exe_wentry.c:36] in cmd (0x0034ff08)
8 0x7ee53e60 start_process+0xc0(arg=0x0)
[/srv/vostok/Projects/wine/dlls/kernel32/process.c:834] in kernel32
(0x0034ffe8)
9 0xb7e5a917 wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000)
0x7ed518e5 WCMD_batch+0x105
[/srv/vostok/Projects/wine/programs/cmd/batch.c:108] in cmd: movl
0x34(%eax),%eax
Unable to open file '/srv/vostok/Projects/wine/programs/cmd/batch.c'
Modules:
Module Address Debug info Name (58 modules)
ELF 4792e000-4830f000 Deferred libglcore.so.1
ELF 4946e000-4955c000 Deferred libx11.so.6
ELF 4955e000-4956c000 Deferred libxext.so.6
ELF 4956e000-49576000 Deferred libxrender.so.1
ELF 49578000-4957b000 Deferred libxinerama.so.1
ELF 4957d000-49583000 Deferred libxrandr.so.2
ELF 49585000-4958e000 Deferred libxcursor.so.1
ELF 49590000-49595000 Deferred libxfixes.so.3
ELF 4a0fd000-4a102000 Deferred libxxf86vm.so.1
ELF 4a4b1000-4a550000 Deferred libgl.so.1
ELF 4acaa000-4acc3000 Deferred ld-linux.so.2
ELF 4acc5000-4acc7000 Deferred libnvidia-tls.so.1
ELF 4b6ac000-4b7d2000 Deferred libc.so.6
ELF 4b7d4000-4b7d8000 Deferred libdl.so.2
ELF 4b7da000-4b800000 Deferred libm.so.6
ELF 4b802000-4b818000 Deferred libpthread.so.0
ELF 4b81a000-4b82e000 Deferred libz.so.1
ELF 4b830000-4b835000 Deferred libxdmcp.so.6
ELF 4b837000-4b83a000 Deferred libxau.so.6
ELF 4b93c000-4b95c000 Deferred libexpat.so.1
ELF 4e4a4000-4e51e000 Deferred libfreetype.so.6
ELF 4e520000-4e528000 Deferred libsm.so.6
ELF 4e560000-4e590000 Deferred libfontconfig.so.1
ELF 4e592000-4e5a9000 Deferred libice.so.6
In loop
while ( context -> skip_rest == FALSE ) {
CMD_LIST *toExecute = NULL; /* Commands left to be executed */
if (WCMD_ReadAndParseLine(NULL, &toExecute, h) == NULL)
break;
WCMD_process_commands(toExecute, FALSE, NULL, NULL);
WCMD_free_commands(toExecute);
toExecute = NULL;
}
the context may be damaged and I have tried to correct it addition of
check.
--
Best regards
Anatoly Lyutin.
More information about the wine-devel
mailing list