darwin: Generate crash reports on FatalError()
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> Acked-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
73b3b67aac
commit
436d0bb9cc
|
@ -525,8 +525,7 @@ bool getGlCapabilities(struct glCapabilities *cap) {
|
|||
|
||||
conf = malloc(sizeof(*conf));
|
||||
if(NULL == conf) {
|
||||
perror("malloc");
|
||||
OsAbort();
|
||||
FatalError("Unable to allocate memory for OpenGL capabilities\n");
|
||||
}
|
||||
|
||||
/* Copy the struct. */
|
||||
|
|
|
@ -602,7 +602,7 @@ void InitOutput( ScreenInfo *pScreenInfo, int argc, char **argv )
|
|||
|
||||
|
||||
/*
|
||||
* OsVendorFataError
|
||||
* OsVendorFatalError
|
||||
*/
|
||||
void OsVendorFatalError( void )
|
||||
{
|
||||
|
@ -760,7 +760,7 @@ void ddxUseMsg( void )
|
|||
*/
|
||||
void ddxGiveUp( void )
|
||||
{
|
||||
ErrorF( "Quitting Xquartz...\n" );
|
||||
ErrorF( "Quitting Xquartz\n" );
|
||||
}
|
||||
|
||||
|
||||
|
@ -773,11 +773,7 @@ void ddxGiveUp( void )
|
|||
void AbortDDX( void )
|
||||
{
|
||||
ErrorF( " AbortDDX\n" );
|
||||
/*
|
||||
* This is needed for a abnormal server exit, since the normal exit stuff
|
||||
* MUST also be performed (i.e. the vt must be left in a defined state)
|
||||
*/
|
||||
ddxGiveUp();
|
||||
OsAbort();
|
||||
}
|
||||
|
||||
#include "mivalidate.h" // for union _Validate used by windowstr.h
|
||||
|
|
|
@ -73,10 +73,11 @@ extern int noPanoramiXExtension;
|
|||
#define XSERVER_VERSION "?"
|
||||
#endif
|
||||
|
||||
const int __crashreporter_info__len = 4096;
|
||||
const char *__crashreporter_info__base = "X.Org X Server " XSERVER_VERSION " Build Date: " BUILD_DATE;
|
||||
char __crashreporter_info__buf[4096];
|
||||
char *__crashreporter_info__ = __crashreporter_info__buf;
|
||||
static char __crashreporter_info_buff__[4096] = {0};
|
||||
static const char *__crashreporter_info__ = &__crashreporter_info_buff__[0];
|
||||
asm (".desc __crashreporter_info__, 0x10");
|
||||
|
||||
static const char *__crashreporter_info__base = "X.Org X Server " XSERVER_VERSION " Build Date: " BUILD_DATE;
|
||||
|
||||
static char *launchd_id_prefix = NULL;
|
||||
static char *server_bootstrap_name = NULL;
|
||||
|
@ -548,7 +549,7 @@ int main(int argc, char **argv, char **envp) {
|
|||
noPanoramiXExtension = TRUE;
|
||||
|
||||
/* Setup the initial crasherporter info */
|
||||
strlcpy(__crashreporter_info__, __crashreporter_info__base, __crashreporter_info__len);
|
||||
strlcpy(__crashreporter_info_buff__, __crashreporter_info__base, sizeof(__crashreporter_info_buff__));
|
||||
|
||||
fprintf(stderr, "X11.app: main(): argc=%d\n", argc);
|
||||
for(i=0; i < argc; i++) {
|
||||
|
|
9
os/log.c
9
os/log.c
|
@ -117,6 +117,12 @@ static char *saveBuffer = NULL;
|
|||
static int bufferSize = 0, bufferUnused = 0, bufferPos = 0;
|
||||
static Bool needBuffer = TRUE;
|
||||
|
||||
#ifdef __APPLE__
|
||||
static char __crashreporter_info_buff__[4096] = {0};
|
||||
static const char *__crashreporter_info__ = &__crashreporter_info_buff__[0];
|
||||
asm (".desc __crashreporter_info__, 0x10");
|
||||
#endif
|
||||
|
||||
/* Prefix strings for log messages. */
|
||||
#ifndef X_UNKNOWN_STRING
|
||||
#define X_UNKNOWN_STRING "(\?\?)"
|
||||
|
@ -527,6 +533,9 @@ FatalError(const char *f, ...)
|
|||
ErrorF("\nFatal server error:\n");
|
||||
|
||||
va_start(args, f);
|
||||
#ifdef __APPLE__
|
||||
(void)vsnprintf(__crashreporter_info_buff__, sizeof(__crashreporter_info_buff__), f, args);
|
||||
#endif
|
||||
VErrorF(f, args);
|
||||
va_end(args);
|
||||
ErrorF("\n");
|
||||
|
|
|
@ -1315,7 +1315,9 @@ OsReleaseSignals (void)
|
|||
void
|
||||
OsAbort (void)
|
||||
{
|
||||
#ifndef __APPLE__
|
||||
OsBlockSignals();
|
||||
#endif
|
||||
abort();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user