Greetings Farid
The contents of the patch look fairly good, but I have a couple
observations.
The first observation I have is that there is a certain amount of
'noise' in the patch from spelling corrections in comments. These
spelling fixes should probably be submitted as a separate cleanup patch.
The second observation I have is about the use of get_signame on the
SIGSEGV constant. It would be more efficient to use 'puts (" SEGV\n")
;' rather than calling printf on a function that returns what is
essentially a constant. An additional benefit is that you wouldn't need
to include signal.h.
--Andrew Black
Farid Zaripov wrote:
The message box, displayed by the system debugger (drwtsn32.exe on
WinNT or dwwin.exe on WinXP) in case when the child process causes
Access Violation, remains on the screen after the child process is
terminated by the exec utility.
Attached is a patch for the exec utility to prevent displaying error
message box when child causes access violation.
This patch do not prevent the displaying of the message box on
assertion fail, but this message box is not a big problem, because of
it's disappear when child process terminates.
ChangeLog:
* exec.cpp [_WIN32 || _WIN64] (exec_file): Set appropriate error mode
before running the child process to disable displaying the
critical-error-handler and general-protection-fault message boxes.
* runall.cpp [_WIN32 || _WIN64] : Included windows.h and
signal.h.
(process_results): Handle returned status STATUS_ACCESS_VIOLATION
and print status "SEGV".
Farid.