Darwin: Added a lightweight debugging facility to support troubleshooting

(for example) the stuck modifier key issue
(cherry picked from commit 0e0b452d10)
This commit is contained in:
Ben Byer 2007-11-15 02:25:50 -08:00 committed by Jeremy Huddleston
parent 74214a9f42
commit 8486f8af91
2 changed files with 28 additions and 0 deletions

View File

@ -75,6 +75,10 @@
#include "darwin.h"
#include "darwinClut8.h"
#ifdef ENABLE_DEBUG_LOG
FILE *debug_log_fp = NULL;
#endif
/*
* X server shared global variables
*/
@ -652,6 +656,20 @@ void OsVendorInit(void)
{
if (serverGeneration == 1) {
DarwinPrintBanner();
#ifdef ENABLE_DEBUG_LOG
{
char *home_dir=NULL, *log_file_path=NULL;
home_dir = getenv("HOME");
if (home_dir) asprintf(&log_file_path, "%s/%s", home_dir, DEBUG_LOG_NAME);
if (log_file_path) {
if (!access(log_file_path, F_OK)) {
debug_log_fp = fopen(log_file_path, "a");
if (debug_log_fp) ErrorF("Debug logging enabled to %s\n", log_file_path);
}
free(log_file_path);
}
}
#endif
}
// Find the full path to the keymapping file.

View File

@ -157,4 +157,14 @@ enum {
kXDarwinWindowMoved // window has moved on screen
};
#define ENABLE_DEBUG_LOG 1
#ifdef ENABLE_DEBUG_LOG
extern FILE *debug_log_fp;
#define DEBUG_LOG_NAME "x11-debug.txt"
#define DEBUG_LOG(msg, args...) if (debug_log_fp) fprintf(debug_log_fp, "%s:%d: " msg, __FUNCTION__, __LINE__, ##args )
#else
#define DEBUG_LOG(msg, args...)
#endif
#endif /* _DARWIN_H */