Bug #46212 safe_process: FATAL ERROR, Unknown option: --nocore

Also fixed mysqld.cc to avoid popup-boxes
This commit is contained in:
Bjorn Munch 2009-07-23 19:01:24 +02:00
parent b9720c7170
commit a80bd0b5d7
2 changed files with 29 additions and 20 deletions

View File

@ -163,6 +163,7 @@ int main(int argc, const char** argv )
HANDLE job_handle; HANDLE job_handle;
HANDLE wait_handles[NUM_HANDLES]= {0}; HANDLE wait_handles[NUM_HANDLES]= {0};
PROCESS_INFORMATION process_info= {0}; PROCESS_INFORMATION process_info= {0};
BOOL nocore= FALSE;
sprintf(safe_process_name, "safe_process[%d]", pid); sprintf(safe_process_name, "safe_process[%d]", pid);
@ -199,18 +200,22 @@ int main(int argc, const char** argv )
} }
break; break;
} else { } else {
if ( strcmp(arg, "--verbose") == 0 ) if (strcmp(arg, "--verbose") == 0)
verbose++; verbose++;
else if ( strncmp(arg, "--parent-pid", 10) == 0 ) else if (strncmp(arg, "--parent-pid", 10) == 0)
{ {
/* Override parent_pid with a value provided by user */ /* Override parent_pid with a value provided by user */
const char* start; const char* start;
if ((start= strstr(arg, "=")) == NULL) if ((start= strstr(arg, "=")) == NULL)
die("Could not find start of option value in '%s'", arg); die("Could not find start of option value in '%s'", arg);
start++; /* Step past = */ start++; /* Step past = */
if ((parent_pid= atoi(start)) == 0) if ((parent_pid= atoi(start)) == 0)
die("Invalid value '%s' passed to --parent-id", start); die("Invalid value '%s' passed to --parent-id", start);
} }
else if (strcmp(arg, "--nocore") == 0)
{
nocore= TRUE;
}
else else
die("Unknown option: %s", arg); die("Unknown option: %s", arg);
} }
@ -248,6 +253,11 @@ int main(int argc, const char** argv )
&jeli, sizeof(jeli)) == 0) &jeli, sizeof(jeli)) == 0)
message("SetInformationJobObject failed, continue anyway..."); message("SetInformationJobObject failed, continue anyway...");
/* Avoid popup box */
if (nocore)
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX
| SEM_NOOPENFILEERRORBOX);
#if 0 #if 0
/* Setup stdin, stdout and stderr redirect */ /* Setup stdin, stdout and stderr redirect */
si.dwFlags= STARTF_USESTDHANDLES; si.dwFlags= STARTF_USESTDHANDLES;

View File

@ -2103,15 +2103,14 @@ static void init_signals(void)
win_install_sigabrt_handler(); win_install_sigabrt_handler();
if(opt_console) if(opt_console)
SetConsoleCtrlHandler(console_event_handler,TRUE); SetConsoleCtrlHandler(console_event_handler,TRUE);
else
{
/* Avoid MessageBox()es*/ /* Avoid MessageBox()es*/
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE); _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE); _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR); _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE); _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR); _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
/* /*
Do not use SEM_NOGPFAULTERRORBOX in the following SetErrorMode (), Do not use SEM_NOGPFAULTERRORBOX in the following SetErrorMode (),
@ -2120,8 +2119,8 @@ static void init_signals(void)
exception filter is not guaranteed to work in all situation exception filter is not guaranteed to work in all situation
(like heap corruption or stack overflow) (like heap corruption or stack overflow)
*/ */
SetErrorMode(SetErrorMode(0)|SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX); SetErrorMode(SetErrorMode(0) | SEM_FAILCRITICALERRORS
} | SEM_NOOPENFILEERRORBOX);
SetUnhandledExceptionFilter(my_unhandler_exception_filter); SetUnhandledExceptionFilter(my_unhandler_exception_filter);
} }