XQuartz: Added debugging output to the crash log to help track down two crashes, since people don't often report their system.log spew.
This commit is contained in:
parent
25eccf12c8
commit
aaf0f71db1
16
dix/events.c
16
dix/events.c
|
@ -2373,13 +2373,25 @@ WindowHasNewCursor(WindowPtr pWin)
|
||||||
PostNewCursor();
|
PostNewCursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef XQUARTZ
|
||||||
|
#include <string.h>
|
||||||
|
extern char *__crashreporter_info__;
|
||||||
|
extern const char *__crashreporter_info__base;
|
||||||
|
extern int __crashreporter_info__len;
|
||||||
|
#endif
|
||||||
|
|
||||||
_X_EXPORT void
|
_X_EXPORT void
|
||||||
NewCurrentScreen(ScreenPtr newScreen, int x, int y)
|
NewCurrentScreen(ScreenPtr newScreen, int x, int y)
|
||||||
{
|
{
|
||||||
sprite.hotPhys.x = x;
|
sprite.hotPhys.x = x;
|
||||||
sprite.hotPhys.y = y;
|
sprite.hotPhys.y = y;
|
||||||
ErrorF("noPanoramiXExtension=%d newScreen=%p\n", noPanoramiXExtension, newScreen);
|
#ifdef XQUARTZ
|
||||||
ErrorF("newScreen->myNum=%d\n", newScreen->myNum);
|
/* 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\nNewCurrentScreen debug data\nnoPanoramiXExtension=%d\nnewScreen=%p\nnewScreen->myNum=%d\n",
|
||||||
|
__crashreporter_info__base, noPanoramiXExtension, newScreen,newScreen->myNum);
|
||||||
|
ErrorF("NewCurrentScreen debug data\nnoPanoramiXExtension=%d\nnewScreen=%p\nnewScreen->myNum=%d\n",
|
||||||
|
noPanoramiXExtension, newScreen, newScreen->myNum);
|
||||||
|
#endif
|
||||||
#ifdef PANORAMIX
|
#ifdef PANORAMIX
|
||||||
if(!noPanoramiXExtension) {
|
if(!noPanoramiXExtension) {
|
||||||
sprite.hotPhys.x += panoramiXdataPtr[newScreen->myNum].x -
|
sprite.hotPhys.x += panoramiXdataPtr[newScreen->myNum].x -
|
||||||
|
|
|
@ -153,8 +153,6 @@ const int NUMFORMATS = sizeof(formats)/sizeof(formats[0]);
|
||||||
#define XSERVER_VERSION "?"
|
#define XSERVER_VERSION "?"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *__crashreporter_info__ = "X.Org X Server " XSERVER_VERSION " Build Date: " BUILD_DATE;
|
|
||||||
|
|
||||||
void DDXRingBell(int volume, int pitch, int duration) {
|
void DDXRingBell(int volume, int pitch, int duration) {
|
||||||
// FIXME -- make some noise, yo
|
// FIXME -- make some noise, yo
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,18 @@ extern int noPanoramiXExtension;
|
||||||
#define DEFAULT_STARTX "/usr/X11/bin/startx"
|
#define DEFAULT_STARTX "/usr/X11/bin/startx"
|
||||||
#define DEFAULT_SHELL "/bin/sh"
|
#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
|
#define DEBUG 1
|
||||||
|
|
||||||
static int execute(const char *command);
|
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.
|
// The server must not run the PanoramiX operations.
|
||||||
noPanoramiXExtension = TRUE;
|
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);
|
fprintf(stderr, "X11.app: main(): argc=%d\n", argc);
|
||||||
for(i=0; i < argc; i++) {
|
for(i=0; i < argc; i++) {
|
||||||
fprintf(stderr, "\targv[%u] = %s\n", (unsigned)i, argv[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;
|
listenOnly = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mp = checkin_or_register(SERVER_BOOTSTRAP_NAME);
|
mp = checkin_or_register(SERVER_BOOTSTRAP_NAME);
|
||||||
if(mp == MACH_PORT_NULL) {
|
if(mp == MACH_PORT_NULL) {
|
||||||
fprintf(stderr, "NULL mach service: %s", SERVER_BOOTSTRAP_NAME);
|
fprintf(stderr, "NULL mach service: %s", SERVER_BOOTSTRAP_NAME);
|
||||||
|
|
|
@ -131,16 +131,45 @@ RootlessNativeWindowStateChanged (WindowPtr pWin, unsigned int state)
|
||||||
pWin->rootlessUnhittable = winRec->is_offscreen;
|
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) {
|
void RootlessNativeWindowMoved (WindowPtr pWin) {
|
||||||
xp_box bounds;
|
xp_box bounds;
|
||||||
int sx, sy, err;
|
int sx, sy, err;
|
||||||
XID vlist[2];
|
XID vlist[2];
|
||||||
Mask mask;
|
Mask mask;
|
||||||
ClientPtr client, pClient;
|
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;
|
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;
|
sx = dixScreenOrigins[pWin->drawable.pScreen->myNum].x + darwinMainScreenX;
|
||||||
sy = dixScreenOrigins[pWin->drawable.pScreen->myNum].y + darwinMainScreenY;
|
sy = dixScreenOrigins[pWin->drawable.pScreen->myNum].y + darwinMainScreenY;
|
||||||
|
|
||||||
|
@ -153,7 +182,7 @@ void RootlessNativeWindowMoved (WindowPtr pWin) {
|
||||||
/* pretend we're the owner of the window! */
|
/* pretend we're the owner of the window! */
|
||||||
err = dixLookupClient(&pClient, pWin->drawable.id, NullClient, DixUnknownAccess);
|
err = dixLookupClient(&pClient, pWin->drawable.id, NullClient, DixUnknownAccess);
|
||||||
if(err != Success) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user