XQuartz: Added debugging output to the crash log to help track down two crashes, since people don't often report their system.log spew.
(cherry picked from commit aaf0f71db197526b6b866cc1b39fbdfe051879ef)
This commit is contained in:
parent
aee19c7b55
commit
8abcc12fdd
|
@ -152,8 +152,6 @@ const int NUMFORMATS = sizeof(formats)/sizeof(formats[0]);
|
|||
#define XORG_RELEASE "?"
|
||||
#endif
|
||||
|
||||
const char *__crashreporter_info__ = "X.Org X Server " XSERVER_VERSION " Build Date: " BUILD_DATE;
|
||||
|
||||
void DDXRingBell(int volume, int pitch, int duration) {
|
||||
// FIXME -- make some noise, yo
|
||||
}
|
||||
|
|
|
@ -59,6 +59,18 @@ extern int noPanoramiXExtension;
|
|||
#define DEFAULT_STARTX "/usr/X11/bin/startx"
|
||||
#define DEFAULT_SHELL "/bin/sh"
|
||||
|
||||
#ifndef BUILD_DATE
|
||||
#define BUILD_DATE ""
|
||||
#endif
|
||||
#ifndef XSERVER_VERSION
|
||||
#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;
|
||||
|
||||
#define DEBUG 1
|
||||
|
||||
static int execute(const char *command);
|
||||
|
@ -389,7 +401,10 @@ int main(int argc, char **argv, char **envp) {
|
|||
|
||||
// The server must not run the PanoramiX operations.
|
||||
noPanoramiXExtension = TRUE;
|
||||
|
||||
|
||||
/* Setup the initial crasherporter info */
|
||||
strlcpy(__crashreporter_info__, __crashreporter_info__base, __crashreporter_info__len);
|
||||
|
||||
fprintf(stderr, "X11.app: main(): argc=%d\n", argc);
|
||||
for(i=0; i < argc; i++) {
|
||||
fprintf(stderr, "\targv[%u] = %s\n", (unsigned)i, argv[i]);
|
||||
|
@ -397,7 +412,7 @@ int main(int argc, char **argv, char **envp) {
|
|||
listenOnly = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
mp = checkin_or_register(SERVER_BOOTSTRAP_NAME);
|
||||
if(mp == MACH_PORT_NULL) {
|
||||
fprintf(stderr, "NULL mach service: %s", SERVER_BOOTSTRAP_NAME);
|
||||
|
|
|
@ -131,16 +131,45 @@ RootlessNativeWindowStateChanged (WindowPtr pWin, unsigned int state)
|
|||
pWin->rootlessUnhittable = winRec->is_offscreen;
|
||||
}
|
||||
|
||||
#ifdef XQUARTZ
|
||||
#include <string.h>
|
||||
extern char *__crashreporter_info__;
|
||||
extern const char *__crashreporter_info__base;
|
||||
extern int __crashreporter_info__len;
|
||||
#endif
|
||||
|
||||
void RootlessNativeWindowMoved (WindowPtr pWin) {
|
||||
xp_box bounds;
|
||||
int sx, sy, err;
|
||||
XID vlist[2];
|
||||
Mask mask;
|
||||
ClientPtr client, pClient;
|
||||
RootlessWindowRec *winRec = WINREC(pWin);
|
||||
RootlessWindowRec *winRec;
|
||||
|
||||
#ifdef XQUARTZ
|
||||
/* We're seeing a crash here, but I'm not sure what's causing it... so putting in some debugging */
|
||||
snprintf(__crashreporter_info__, __crashreporter_info__len,
|
||||
"%s\n\RootlessNativeWindowMoved debug data\npWin=%p\n",
|
||||
__crashreporter_info__base, pWin);
|
||||
ErrorF("RootlessNativeWindowMoved debug data\npWin=%p\n", pWin);
|
||||
#endif
|
||||
|
||||
winRec = WINREC(pWin);
|
||||
|
||||
#ifdef XQUARTZ
|
||||
/* We're seeing a crash here, but I'm not sure what's causing it... so putting in some debugging */
|
||||
snprintf(__crashreporter_info__, __crashreporter_info__len, "%swinRec=%p\nwinRec->wid=%d\n", __crashreporter_info__, winRec, winRec ? (int)winRec->wid : 0);
|
||||
ErrorF("winRec=%p\nwinRec->wid=%d\n", winRec, winRec ? (int)winRec->wid : 0);
|
||||
#endif
|
||||
|
||||
if (xp_get_window_bounds ((xp_window_id)winRec->wid, &bounds) != Success) return;
|
||||
|
||||
#ifdef XQUARTZ
|
||||
/* We're seeing a crash here, but I'm not sure what's causing it... so putting in some debugging */
|
||||
snprintf(__crashreporter_info__, __crashreporter_info__len, "%spWin->drawable.pScreen=%p\npWin->drawable.pScreen->myNum=%d\n", __crashreporter_info__, pWin->drawable.pScreen, pWin->drawable.pScreen ? pWin->drawable.pScreen->myNum : 0);
|
||||
ErrorF("pWin->drawable.pScreen=%p\npWin->drawable.pScreen->myNum=%d\n", pWin->drawable.pScreen, pWin->drawable.pScreen ? pWin->drawable.pScreen->myNum : 0);
|
||||
#endif
|
||||
|
||||
sx = dixScreenOrigins[pWin->drawable.pScreen->myNum].x + darwinMainScreenX;
|
||||
sy = dixScreenOrigins[pWin->drawable.pScreen->myNum].y + darwinMainScreenY;
|
||||
|
||||
|
@ -153,7 +182,7 @@ void RootlessNativeWindowMoved (WindowPtr pWin) {
|
|||
/* pretend we're the owner of the window! */
|
||||
err = dixLookupClient(&pClient, pWin->drawable.id, NullClient, DixUnknownAccess);
|
||||
if(err != Success) {
|
||||
ErrorF("RootlessNativeWindowMoved(): Failed to lookup window: 0x%x\n", pWin->drawable.id);
|
||||
ErrorF("RootlessNativeWindowMoved(): Failed to lookup window: 0x%x\n", (unsigned int)pWin->drawable.id);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue