Oops, two changes in that last commit. Don't have the child kill the parent any longer. This doesn't work when gdb is tracing. Why is the parent waiting for the child anyway? It shouldn't really matter that much if the child is signaled.
Also, why doesn't RunCrashHandler call _exit()? ForceDeadlock() calls _exit() after RunCrashHandler(), but ForceCrash does not, it has to go back to sm_crash() before _exit() is called. It's all very mysterious at 6:30 am.
This commit is contained in:
@@ -233,7 +233,7 @@ static void child_process()
|
||||
|
||||
fprintf( CrashDump, "Static log:\n" );
|
||||
fprintf( CrashDump, "%s", Info );
|
||||
fprintf( CrashDump, "%s", AdditionalLog );
|
||||
fprintf( CrashDump, "%s", AdditionalLog );
|
||||
fprintf(CrashDump, "\nPartial log:\n" );
|
||||
for( int i = 0; i < cnt; ++i )
|
||||
fprintf( CrashDump, "%s\n", Recent[i] );
|
||||
@@ -242,8 +242,6 @@ static void child_process()
|
||||
fclose( CrashDump) ;
|
||||
|
||||
#if defined(MACOSX)
|
||||
/* Forcibly kill our parent. */
|
||||
//kill( getppid(), SIGKILL );
|
||||
InformUserOfCrash( sCrashInfoPath );
|
||||
#else
|
||||
/* stdout may have been inadvertently closed by the crash in the parent;
|
||||
|
||||
Reference in New Issue
Block a user