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 aaf0f71db1
)
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);
|
||||
@ -390,6 +402,9 @@ 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]);
|
||||
|
@ -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
Block a user