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.

Reply via email to