Optimized debugging API to reduce code size.
This commit is contained in:
parent
fc296da4e2
commit
383da68cf9
|
@ -13,6 +13,7 @@
|
|||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "winbase.h"
|
||||
|
@ -25,7 +26,7 @@
|
|||
#include "server.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(reg)
|
||||
DEFAULT_DEBUG_CHANNEL(reg);
|
||||
|
||||
|
||||
/* Ansi->Unicode conversion without string delimiters */
|
||||
|
|
|
@ -11,16 +11,17 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "winbase.h"
|
||||
#include "commctrl.h"
|
||||
#include "datetime.h"
|
||||
#include "monthcal.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(datetime)
|
||||
DEFAULT_DEBUG_CHANNEL(datetime);
|
||||
|
||||
|
||||
#define DATETIME_GetInfoPtr(hwnd) ((DATETIME_INFO *)GetWindowLongA (hwnd, 0))
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "winbase.h"
|
||||
#include "commctrl.h"
|
||||
|
@ -30,7 +31,7 @@
|
|||
#include "heap.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(ipaddress)
|
||||
DEFAULT_DEBUG_CHANNEL(ipaddress);
|
||||
|
||||
#define IPADDRESS_GetInfoPtr(hwnd) ((IPADDRESS_INFO *)GetWindowLongA (hwnd, 0))
|
||||
|
||||
|
|
|
@ -23,13 +23,14 @@
|
|||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "winbase.h"
|
||||
#include "commctrl.h"
|
||||
#include "trackbar.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(trackbar)
|
||||
DEFAULT_DEBUG_CHANNEL(trackbar);
|
||||
|
||||
|
||||
#define TRACKBAR_GetInfoPtr(wndPtr) ((TRACKBAR_INFO *)GetWindowLongA (hwnd,0))
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
*/
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "winbase.h"
|
||||
#include "ldt.h"
|
||||
|
@ -20,7 +21,7 @@
|
|||
#include "filedlgbrowser.h"
|
||||
#include "wine/obj_contextmenu.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(commdlg)
|
||||
DEFAULT_DEBUG_CHANNEL(commdlg);
|
||||
|
||||
/***********************************************************************
|
||||
* Data structure and global variables
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
* dplayx.dll data which is accessible from all processes.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "debugtools.h"
|
||||
#include "winbase.h"
|
||||
#include "winerror.h"
|
||||
|
@ -17,7 +18,7 @@
|
|||
|
||||
#include "dplayx_global.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(dplay)
|
||||
DEFAULT_DEBUG_CHANNEL(dplay);
|
||||
|
||||
/* FIXME: Need to do all that fun other dll referencing type of stuff */
|
||||
/* FIXME: Need to allocate a giant static area */
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
#include "config.h"
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/fcntl.h>
|
||||
|
@ -70,7 +71,7 @@
|
|||
#include "thread.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(dsound)
|
||||
DEFAULT_DEBUG_CHANNEL(dsound);
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
|
@ -1197,7 +1198,7 @@ static HRESULT WINAPI IDirectSoundBufferImpl_Initialize(
|
|||
) {
|
||||
ICOM_THIS(IDirectSoundBufferImpl,iface);
|
||||
FIXME("(%p,%p,%p):stub\n",This,dsound,dbsd);
|
||||
printf("Re-Init!!!\n");
|
||||
DPRINTF("Re-Init!!!\n");
|
||||
return DSERR_ALREADYINITIALIZED;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wine/winbase16.h"
|
||||
|
@ -18,7 +20,7 @@
|
|||
#include "lzexpand.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(file)
|
||||
DEFAULT_DEBUG_CHANNEL(file);
|
||||
|
||||
|
||||
/* The readahead length of the decompressor. Reading single bytes
|
||||
|
|
|
@ -40,13 +40,13 @@ void dump_UnicodeString(PUNICODE_STRING us, BOOLEAN showstring)
|
|||
}
|
||||
}
|
||||
|
||||
LPSTR debugstr_as (PANSI_STRING us)
|
||||
LPCSTR debugstr_as (PANSI_STRING us)
|
||||
{
|
||||
if (!us) return NULL;
|
||||
return debugstr_an(us->Buffer, us->Length);
|
||||
}
|
||||
|
||||
LPSTR debugstr_us (PUNICODE_STRING us)
|
||||
LPCSTR debugstr_us (PUNICODE_STRING us)
|
||||
{
|
||||
if (!us) return NULL;
|
||||
return debugstr_wn(us->Buffer, us->Length);
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
#include "winnt.h"
|
||||
|
||||
/* debug helper */
|
||||
extern LPSTR debugstr_as (PANSI_STRING us);
|
||||
extern LPSTR debugstr_us (PUNICODE_STRING us);
|
||||
extern LPCSTR debugstr_as (PANSI_STRING us);
|
||||
extern LPCSTR debugstr_us (PUNICODE_STRING us);
|
||||
extern void dump_ObjectAttributes (POBJECT_ATTRIBUTES ObjectAttributes);
|
||||
extern void dump_AnsiString(PANSI_STRING as, BOOLEAN showstring);
|
||||
extern void dump_UnicodeString(PUNICODE_STRING us, BOOLEAN showstring);
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <errno.h>
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
# include <netinet/in.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <assert.h>
|
||||
|
@ -56,7 +57,8 @@
|
|||
#include "ifs.h"
|
||||
#include "compobj.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(ole)
|
||||
DEFAULT_DEBUG_CHANNEL(ole);
|
||||
|
||||
/****************************************************************************
|
||||
* COM External Lock structures and methods declaration
|
||||
*
|
||||
|
@ -1958,13 +1960,11 @@ void COM_ExternalLockDump()
|
|||
{
|
||||
COM_ExternalLock *current = elList.head;
|
||||
|
||||
printf("\nExternal lock list contains:\n");
|
||||
DPRINTF("\nExternal lock list contains:\n");
|
||||
|
||||
while ( current != EL_END_OF_LIST )
|
||||
{
|
||||
printf( "\t%p with %lu references count.\n",
|
||||
current->pUnk,
|
||||
current->uRefCount);
|
||||
DPRINTF( "\t%p with %lu references count.\n", current->pUnk, current->uRefCount);
|
||||
|
||||
/* Skip to the next item */
|
||||
current = current->next;
|
||||
|
|
|
@ -303,7 +303,7 @@ HRESULT WINAPI CompositeMonikerImpl_Load(IMoniker* iface,IStream* pStm)
|
|||
res=OleLoadFromStream(pStm,&IID_IMoniker,(void**)&This->tabMoniker[This->tabLastIndex]);
|
||||
#endif
|
||||
res=ReadClassStm(pStm,&clsid);
|
||||
printf("res=%ld",res);
|
||||
DPRINTF("res=%ld",res);
|
||||
if (FAILED(res))
|
||||
break;
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include "winerror.h"
|
||||
#include "winreg.h" /* for HKEY_LOCAL_MACHINE */
|
||||
|
@ -40,8 +41,8 @@ typedef struct ITypeInfoVtbl ITypeLib_VTable, *LPTYPEINFO_VTABLE ;
|
|||
typedef struct ITypeLibVtbl *LPTYPELIB_VTABLE ;
|
||||
#include "typelib.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(ole)
|
||||
DECLARE_DEBUG_CHANNEL(typelib)
|
||||
DEFAULT_DEBUG_CHANNEL(ole);
|
||||
DECLARE_DEBUG_CHANNEL(typelib);
|
||||
|
||||
/****************************************************************************
|
||||
* QueryPathOfRegTypeLib16 [TYPELIB.14]
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "debugtools.h"
|
||||
#include "winerror.h"
|
||||
#include "winreg.h"
|
||||
|
@ -15,7 +16,7 @@
|
|||
#include "shlguid.h"
|
||||
#include "shresdef.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(shell)
|
||||
DEFAULT_DEBUG_CHANNEL(shell);
|
||||
|
||||
#define MAX_EXTENSION_LENGTH 20
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
* 1998 Jürgen Schmied
|
||||
*/
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "winerror.h"
|
||||
#include "winreg.h"
|
||||
#include "debugtools.h"
|
||||
|
@ -19,7 +20,7 @@
|
|||
#include "wine/undocshell.h"
|
||||
#include "shpolicy.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(shell)
|
||||
DEFAULT_DEBUG_CHANNEL(shell);
|
||||
|
||||
/*************************************************************************
|
||||
* SHChangeNotifyRegister [SHELL32.2]
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "windef.h"
|
||||
|
@ -17,7 +18,7 @@
|
|||
#include "xmalloc.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(ver)
|
||||
DEFAULT_DEBUG_CHANNEL(ver);
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "neexe.h"
|
||||
#include "module.h"
|
||||
|
@ -15,7 +17,7 @@
|
|||
#include "lzexpand.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(ver)
|
||||
DEFAULT_DEBUG_CHANNEL(ver);
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <memory.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "winbase.h"
|
||||
#include "aspi.h"
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include "windef.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "windef.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
|
@ -24,7 +25,7 @@
|
|||
#include "heap.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(mcimidi)
|
||||
DEFAULT_DEBUG_CHANNEL(mcimidi);
|
||||
|
||||
#define MIDI_NOTEOFF 0x80
|
||||
#define MIDI_NOTEON 0x90
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "mmsystem.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(mmio)
|
||||
DEFAULT_DEBUG_CHANNEL(mmio);
|
||||
|
||||
LPMMIOPROC16 MMIO_InstallIOProc(FOURCC, LPMMIOPROC16, DWORD, BOOL);
|
||||
|
||||
|
@ -1114,11 +1114,12 @@ LRESULT WINAPI mmioSendMessage(HMMIO16 hmmio, UINT16 uMessage,
|
|||
{
|
||||
LPMMIOINFO16 lpmminfo;
|
||||
LRESULT result;
|
||||
const char *msg = NULL;
|
||||
struct IOProcList *pListNode;
|
||||
|
||||
#ifdef DEBUG_RUNTIME
|
||||
switch (uMessage) {
|
||||
if (TRACE_ON(mmio))
|
||||
{
|
||||
const char *msg = NULL;
|
||||
switch (uMessage) {
|
||||
#define msgname(x) case x: msg = #x; break;
|
||||
msgname(MMIOM_OPEN);
|
||||
msgname(MMIOM_CLOSE);
|
||||
|
@ -1128,15 +1129,14 @@ LRESULT WINAPI mmioSendMessage(HMMIO16 hmmio, UINT16 uMessage,
|
|||
msgname(MMIOM_SEEK);
|
||||
msgname(MMIOM_RENAME);
|
||||
#undef msgname
|
||||
}
|
||||
#endif
|
||||
|
||||
if (msg)
|
||||
}
|
||||
if (msg)
|
||||
TRACE("(%04X, %s, %ld, %ld)\n",
|
||||
hmmio, msg, lParam1, lParam2);
|
||||
else
|
||||
hmmio, msg, lParam1, lParam2);
|
||||
else
|
||||
TRACE("(%04X, %u, %ld, %ld)\n",
|
||||
hmmio, uMessage, lParam1, lParam2);
|
||||
hmmio, uMessage, lParam1, lParam2);
|
||||
}
|
||||
|
||||
lpmminfo = (LPMMIOINFO16)GlobalLock16(hmmio);
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "config.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
|
@ -21,7 +22,7 @@
|
|||
#include "oss.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(mmaux)
|
||||
DEFAULT_DEBUG_CHANNEL(mmaux);
|
||||
|
||||
#ifdef HAVE_OSS
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "config.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <errno.h>
|
||||
|
@ -17,7 +18,7 @@
|
|||
#include "ldt.h"
|
||||
#include "callback.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(aspi)
|
||||
DEFAULT_DEBUG_CHANNEL(aspi);
|
||||
|
||||
/* FIXME!
|
||||
* 1) Residual byte length reporting not handled
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#ifdef HAVE_SYS_ERRNO_H
|
||||
#include <sys/errno.h>
|
||||
|
@ -50,7 +51,7 @@
|
|||
|
||||
#include "server.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(file)
|
||||
DEFAULT_DEBUG_CHANNEL(file);
|
||||
|
||||
#if defined(MAP_ANONYMOUS) && !defined(MAP_ANON)
|
||||
#define MAP_ANON MAP_ANONYMOUS
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "gdi.h"
|
||||
#include "heap.h"
|
||||
|
@ -75,7 +76,7 @@ static char *ddProp = "WINE_DDRAW_Property";
|
|||
#include "ddraw_private.h"
|
||||
#include "d3d_private.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(ddraw)
|
||||
DEFAULT_DEBUG_CHANNEL(ddraw);
|
||||
|
||||
/* Restore signal handlers overwritten by XF86DGA
|
||||
*/
|
||||
|
|
|
@ -7,13 +7,14 @@
|
|||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "winnt.h" /* HEAP_ZERO_MEMORY */
|
||||
#include "psdrv.h"
|
||||
#include "options.h"
|
||||
#include "debugtools.h"
|
||||
#include "heap.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(psdrv)
|
||||
DEFAULT_DEBUG_CHANNEL(psdrv);
|
||||
#include <ctype.h>
|
||||
|
||||
/* ptr to fonts for which we have afm files */
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include "winnt.h" /* HEAP_ZERO_MEMORY */
|
||||
#include "heap.h"
|
||||
|
@ -13,7 +14,7 @@
|
|||
#include "psdrv.h"
|
||||
#include "winspool.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(psdrv)
|
||||
DEFAULT_DEBUG_CHANNEL(psdrv);
|
||||
|
||||
typedef struct {
|
||||
char *key;
|
||||
|
|
|
@ -6,12 +6,13 @@
|
|||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "psdrv.h"
|
||||
#include "winspool.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(psdrv)
|
||||
DEFAULT_DEBUG_CHANNEL(psdrv);
|
||||
|
||||
static char psheader[] = /* title llx lly urx ury orientation */
|
||||
"%%!PS-Adobe-3.0\n"
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "winbase.h"
|
||||
#include "wine/winbase16.h"
|
||||
#include "wine/winestring.h"
|
||||
|
|
|
@ -4,505 +4,354 @@
|
|||
|
||||
#define DEBUG_CLASS_COUNT __DBCL_COUNT
|
||||
|
||||
#ifdef DEBUG_RUNTIME
|
||||
static const char * const debug_cl_name[] = { "fixme", "err", "warn", "trace" };
|
||||
|
||||
const char * const debug_cl_name[] = { "fixme", "err", "warn", "trace" };
|
||||
|
||||
const int dbch_accel = 0;
|
||||
const int dbch_advapi = 1;
|
||||
const int dbch_animate = 2;
|
||||
const int dbch_aspi = 3;
|
||||
const int dbch_atom = 4;
|
||||
const int dbch_avifile = 5;
|
||||
const int dbch_bitblt = 6;
|
||||
const int dbch_bitmap = 7;
|
||||
const int dbch_caret = 8;
|
||||
const int dbch_cdrom = 9;
|
||||
const int dbch_class = 10;
|
||||
const int dbch_clipboard = 11;
|
||||
const int dbch_clipping = 12;
|
||||
const int dbch_combo = 13;
|
||||
const int dbch_comboex = 14;
|
||||
const int dbch_comm = 15;
|
||||
const int dbch_commctrl = 16;
|
||||
const int dbch_commdlg = 17;
|
||||
const int dbch_console = 18;
|
||||
const int dbch_crtdll = 19;
|
||||
const int dbch_cursor = 20;
|
||||
const int dbch_datetime = 21;
|
||||
const int dbch_dc = 22;
|
||||
const int dbch_ddeml = 23;
|
||||
const int dbch_ddraw = 24;
|
||||
const int dbch_debug = 25;
|
||||
const int dbch_debugstr = 26;
|
||||
const int dbch_delayhlp = 27;
|
||||
const int dbch_dialog = 28;
|
||||
const int dbch_dinput = 29;
|
||||
const int dbch_dll = 30;
|
||||
const int dbch_dosfs = 31;
|
||||
const int dbch_dosmem = 32;
|
||||
const int dbch_dplay = 33;
|
||||
const int dbch_driver = 34;
|
||||
const int dbch_dsound = 35;
|
||||
const int dbch_edit = 36;
|
||||
const int dbch_elfdll = 37;
|
||||
const int dbch_enhmetafile = 38;
|
||||
const int dbch_event = 39;
|
||||
const int dbch_exec = 40;
|
||||
const int dbch_file = 41;
|
||||
const int dbch_fixup = 42;
|
||||
const int dbch_font = 43;
|
||||
const int dbch_gdi = 44;
|
||||
const int dbch_global = 45;
|
||||
const int dbch_graphics = 46;
|
||||
const int dbch_header = 47;
|
||||
const int dbch_heap = 48;
|
||||
const int dbch_hook = 49;
|
||||
const int dbch_hotkey = 50;
|
||||
const int dbch_icmp = 51;
|
||||
const int dbch_icon = 52;
|
||||
const int dbch_imagehlp = 53;
|
||||
const int dbch_imagelist = 54;
|
||||
const int dbch_imm = 55;
|
||||
const int dbch_int = 56;
|
||||
const int dbch_int10 = 57;
|
||||
const int dbch_int16 = 58;
|
||||
const int dbch_int17 = 59;
|
||||
const int dbch_int19 = 60;
|
||||
const int dbch_int21 = 61;
|
||||
const int dbch_int31 = 62;
|
||||
const int dbch_io = 63;
|
||||
const int dbch_ipaddress = 64;
|
||||
const int dbch_key = 65;
|
||||
const int dbch_keyboard = 66;
|
||||
const int dbch_ldt = 67;
|
||||
const int dbch_listbox = 68;
|
||||
const int dbch_listview = 69;
|
||||
const int dbch_local = 70;
|
||||
const int dbch_mci = 71;
|
||||
const int dbch_mcianim = 72;
|
||||
const int dbch_mciavi = 73;
|
||||
const int dbch_mcicda = 74;
|
||||
const int dbch_mcimidi = 75;
|
||||
const int dbch_mciwave = 76;
|
||||
const int dbch_mdi = 77;
|
||||
const int dbch_menu = 78;
|
||||
const int dbch_message = 79;
|
||||
const int dbch_metafile = 80;
|
||||
const int dbch_midi = 81;
|
||||
const int dbch_mmaux = 82;
|
||||
const int dbch_mmio = 83;
|
||||
const int dbch_mmsys = 84;
|
||||
const int dbch_mmtime = 85;
|
||||
const int dbch_module = 86;
|
||||
const int dbch_monthcal = 87;
|
||||
const int dbch_mpr = 88;
|
||||
const int dbch_msacm = 89;
|
||||
const int dbch_msg = 90;
|
||||
const int dbch_msvideo = 91;
|
||||
const int dbch_nativefont = 92;
|
||||
const int dbch_nonclient = 93;
|
||||
const int dbch_ntdll = 94;
|
||||
const int dbch_odbc = 95;
|
||||
const int dbch_ole = 96;
|
||||
const int dbch_pager = 97;
|
||||
const int dbch_palette = 98;
|
||||
const int dbch_pidl = 99;
|
||||
const int dbch_print = 100;
|
||||
const int dbch_process = 101;
|
||||
const int dbch_profile = 102;
|
||||
const int dbch_progress = 103;
|
||||
const int dbch_prop = 104;
|
||||
const int dbch_propsheet = 105;
|
||||
const int dbch_psapi = 106;
|
||||
const int dbch_psdrv = 107;
|
||||
const int dbch_ras = 108;
|
||||
const int dbch_rebar = 109;
|
||||
const int dbch_reg = 110;
|
||||
const int dbch_region = 111;
|
||||
const int dbch_relay = 112;
|
||||
const int dbch_resource = 113;
|
||||
const int dbch_scroll = 114;
|
||||
const int dbch_security = 115;
|
||||
const int dbch_segment = 116;
|
||||
const int dbch_seh = 117;
|
||||
const int dbch_selector = 118;
|
||||
const int dbch_sendmsg = 119;
|
||||
const int dbch_server = 120;
|
||||
const int dbch_setupx = 121;
|
||||
const int dbch_shell = 122;
|
||||
const int dbch_snoop = 123;
|
||||
const int dbch_sound = 124;
|
||||
const int dbch_static = 125;
|
||||
const int dbch_statusbar = 126;
|
||||
const int dbch_storage = 127;
|
||||
const int dbch_stress = 128;
|
||||
const int dbch_string = 129;
|
||||
const int dbch_syscolor = 130;
|
||||
const int dbch_system = 131;
|
||||
const int dbch_tab = 132;
|
||||
const int dbch_tape = 133;
|
||||
const int dbch_tapi = 134;
|
||||
const int dbch_task = 135;
|
||||
const int dbch_text = 136;
|
||||
const int dbch_thread = 137;
|
||||
const int dbch_thunk = 138;
|
||||
const int dbch_timer = 139;
|
||||
const int dbch_toolbar = 140;
|
||||
const int dbch_toolhelp = 141;
|
||||
const int dbch_tooltips = 142;
|
||||
const int dbch_trackbar = 143;
|
||||
const int dbch_treeview = 144;
|
||||
const int dbch_ttydrv = 145;
|
||||
const int dbch_tweak = 146;
|
||||
const int dbch_typelib = 147;
|
||||
const int dbch_updown = 148;
|
||||
const int dbch_ver = 149;
|
||||
const int dbch_virtual = 150;
|
||||
const int dbch_vxd = 151;
|
||||
const int dbch_wave = 152;
|
||||
const int dbch_win = 153;
|
||||
const int dbch_win16drv = 154;
|
||||
const int dbch_win32 = 155;
|
||||
const int dbch_wing = 156;
|
||||
const int dbch_winsock = 157;
|
||||
const int dbch_winspool = 158;
|
||||
const int dbch_wnet = 159;
|
||||
const int dbch_x11 = 160;
|
||||
const int dbch_x11drv = 161;
|
||||
char dbch_accel[] = "\003accel";
|
||||
char dbch_advapi[] = "\003advapi";
|
||||
char dbch_animate[] = "\003animate";
|
||||
char dbch_aspi[] = "\003aspi";
|
||||
char dbch_atom[] = "\003atom";
|
||||
char dbch_avifile[] = "\003avifile";
|
||||
char dbch_bitblt[] = "\003bitblt";
|
||||
char dbch_bitmap[] = "\003bitmap";
|
||||
char dbch_caret[] = "\003caret";
|
||||
char dbch_cdrom[] = "\003cdrom";
|
||||
char dbch_class[] = "\003class";
|
||||
char dbch_clipboard[] = "\003clipboard";
|
||||
char dbch_clipping[] = "\003clipping";
|
||||
char dbch_combo[] = "\003combo";
|
||||
char dbch_comboex[] = "\003comboex";
|
||||
char dbch_comm[] = "\003comm";
|
||||
char dbch_commctrl[] = "\003commctrl";
|
||||
char dbch_commdlg[] = "\003commdlg";
|
||||
char dbch_console[] = "\003console";
|
||||
char dbch_crtdll[] = "\003crtdll";
|
||||
char dbch_cursor[] = "\003cursor";
|
||||
char dbch_datetime[] = "\003datetime";
|
||||
char dbch_dc[] = "\003dc";
|
||||
char dbch_ddeml[] = "\003ddeml";
|
||||
char dbch_ddraw[] = "\003ddraw";
|
||||
char dbch_debug[] = "\003debug";
|
||||
char dbch_debugstr[] = "\003debugstr";
|
||||
char dbch_delayhlp[] = "\003delayhlp";
|
||||
char dbch_dialog[] = "\003dialog";
|
||||
char dbch_dinput[] = "\003dinput";
|
||||
char dbch_dll[] = "\003dll";
|
||||
char dbch_dosfs[] = "\003dosfs";
|
||||
char dbch_dosmem[] = "\003dosmem";
|
||||
char dbch_dplay[] = "\003dplay";
|
||||
char dbch_driver[] = "\003driver";
|
||||
char dbch_dsound[] = "\003dsound";
|
||||
char dbch_edit[] = "\003edit";
|
||||
char dbch_elfdll[] = "\003elfdll";
|
||||
char dbch_enhmetafile[] = "\003enhmetafile";
|
||||
char dbch_event[] = "\003event";
|
||||
char dbch_exec[] = "\003exec";
|
||||
char dbch_file[] = "\003file";
|
||||
char dbch_fixup[] = "\003fixup";
|
||||
char dbch_font[] = "\003font";
|
||||
char dbch_gdi[] = "\003gdi";
|
||||
char dbch_global[] = "\003global";
|
||||
char dbch_graphics[] = "\003graphics";
|
||||
char dbch_header[] = "\003header";
|
||||
char dbch_heap[] = "\003heap";
|
||||
char dbch_hook[] = "\003hook";
|
||||
char dbch_hotkey[] = "\003hotkey";
|
||||
char dbch_icmp[] = "\003icmp";
|
||||
char dbch_icon[] = "\003icon";
|
||||
char dbch_imagehlp[] = "\003imagehlp";
|
||||
char dbch_imagelist[] = "\003imagelist";
|
||||
char dbch_imm[] = "\003imm";
|
||||
char dbch_int[] = "\003int";
|
||||
char dbch_int10[] = "\003int10";
|
||||
char dbch_int16[] = "\003int16";
|
||||
char dbch_int17[] = "\003int17";
|
||||
char dbch_int19[] = "\003int19";
|
||||
char dbch_int21[] = "\003int21";
|
||||
char dbch_int31[] = "\003int31";
|
||||
char dbch_io[] = "\003io";
|
||||
char dbch_ipaddress[] = "\003ipaddress";
|
||||
char dbch_key[] = "\003key";
|
||||
char dbch_keyboard[] = "\003keyboard";
|
||||
char dbch_ldt[] = "\003ldt";
|
||||
char dbch_listbox[] = "\003listbox";
|
||||
char dbch_listview[] = "\003listview";
|
||||
char dbch_local[] = "\003local";
|
||||
char dbch_mci[] = "\003mci";
|
||||
char dbch_mcianim[] = "\003mcianim";
|
||||
char dbch_mciavi[] = "\003mciavi";
|
||||
char dbch_mcicda[] = "\003mcicda";
|
||||
char dbch_mcimidi[] = "\003mcimidi";
|
||||
char dbch_mciwave[] = "\003mciwave";
|
||||
char dbch_mdi[] = "\003mdi";
|
||||
char dbch_menu[] = "\003menu";
|
||||
char dbch_message[] = "\003message";
|
||||
char dbch_metafile[] = "\003metafile";
|
||||
char dbch_midi[] = "\003midi";
|
||||
char dbch_mmaux[] = "\003mmaux";
|
||||
char dbch_mmio[] = "\003mmio";
|
||||
char dbch_mmsys[] = "\003mmsys";
|
||||
char dbch_mmtime[] = "\003mmtime";
|
||||
char dbch_module[] = "\003module";
|
||||
char dbch_monthcal[] = "\003monthcal";
|
||||
char dbch_mpr[] = "\003mpr";
|
||||
char dbch_msacm[] = "\003msacm";
|
||||
char dbch_msg[] = "\003msg";
|
||||
char dbch_msvideo[] = "\003msvideo";
|
||||
char dbch_nativefont[] = "\003nativefont";
|
||||
char dbch_nonclient[] = "\003nonclient";
|
||||
char dbch_ntdll[] = "\003ntdll";
|
||||
char dbch_odbc[] = "\003odbc";
|
||||
char dbch_ole[] = "\003ole";
|
||||
char dbch_pager[] = "\003pager";
|
||||
char dbch_palette[] = "\003palette";
|
||||
char dbch_pidl[] = "\003pidl";
|
||||
char dbch_print[] = "\003print";
|
||||
char dbch_process[] = "\003process";
|
||||
char dbch_profile[] = "\003profile";
|
||||
char dbch_progress[] = "\003progress";
|
||||
char dbch_prop[] = "\003prop";
|
||||
char dbch_propsheet[] = "\003propsheet";
|
||||
char dbch_psapi[] = "\003psapi";
|
||||
char dbch_psdrv[] = "\003psdrv";
|
||||
char dbch_ras[] = "\003ras";
|
||||
char dbch_rebar[] = "\003rebar";
|
||||
char dbch_reg[] = "\003reg";
|
||||
char dbch_region[] = "\003region";
|
||||
char dbch_relay[] = "\003relay";
|
||||
char dbch_resource[] = "\003resource";
|
||||
char dbch_scroll[] = "\003scroll";
|
||||
char dbch_security[] = "\003security";
|
||||
char dbch_segment[] = "\003segment";
|
||||
char dbch_seh[] = "\003seh";
|
||||
char dbch_selector[] = "\003selector";
|
||||
char dbch_sendmsg[] = "\003sendmsg";
|
||||
char dbch_server[] = "\003server";
|
||||
char dbch_setupx[] = "\003setupx";
|
||||
char dbch_shell[] = "\003shell";
|
||||
char dbch_snoop[] = "\003snoop";
|
||||
char dbch_sound[] = "\003sound";
|
||||
char dbch_static[] = "\003static";
|
||||
char dbch_statusbar[] = "\003statusbar";
|
||||
char dbch_storage[] = "\003storage";
|
||||
char dbch_stress[] = "\003stress";
|
||||
char dbch_string[] = "\003string";
|
||||
char dbch_syscolor[] = "\003syscolor";
|
||||
char dbch_system[] = "\003system";
|
||||
char dbch_tab[] = "\003tab";
|
||||
char dbch_tape[] = "\003tape";
|
||||
char dbch_tapi[] = "\003tapi";
|
||||
char dbch_task[] = "\003task";
|
||||
char dbch_text[] = "\003text";
|
||||
char dbch_thread[] = "\003thread";
|
||||
char dbch_thunk[] = "\003thunk";
|
||||
char dbch_timer[] = "\003timer";
|
||||
char dbch_toolbar[] = "\003toolbar";
|
||||
char dbch_toolhelp[] = "\003toolhelp";
|
||||
char dbch_tooltips[] = "\003tooltips";
|
||||
char dbch_trackbar[] = "\003trackbar";
|
||||
char dbch_treeview[] = "\003treeview";
|
||||
char dbch_ttydrv[] = "\003ttydrv";
|
||||
char dbch_tweak[] = "\003tweak";
|
||||
char dbch_typelib[] = "\003typelib";
|
||||
char dbch_updown[] = "\003updown";
|
||||
char dbch_ver[] = "\003ver";
|
||||
char dbch_virtual[] = "\003virtual";
|
||||
char dbch_vxd[] = "\003vxd";
|
||||
char dbch_wave[] = "\003wave";
|
||||
char dbch_win[] = "\003win";
|
||||
char dbch_win16drv[] = "\003win16drv";
|
||||
char dbch_win32[] = "\003win32";
|
||||
char dbch_wing[] = "\003wing";
|
||||
char dbch_winsock[] = "\003winsock";
|
||||
char dbch_winspool[] = "\003winspool";
|
||||
char dbch_wnet[] = "\003wnet";
|
||||
char dbch_x11[] = "\003x11";
|
||||
char dbch_x11drv[] = "\003x11drv";
|
||||
|
||||
#define DEBUG_CHANNEL_COUNT 162
|
||||
|
||||
char __debug_msg_enabled[DEBUG_CHANNEL_COUNT][DEBUG_CLASS_COUNT] = {
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0},
|
||||
{1, 1, 0, 0}
|
||||
static char * const debug_channels[DEBUG_CHANNEL_COUNT] = {
|
||||
dbch_accel,
|
||||
dbch_advapi,
|
||||
dbch_animate,
|
||||
dbch_aspi,
|
||||
dbch_atom,
|
||||
dbch_avifile,
|
||||
dbch_bitblt,
|
||||
dbch_bitmap,
|
||||
dbch_caret,
|
||||
dbch_cdrom,
|
||||
dbch_class,
|
||||
dbch_clipboard,
|
||||
dbch_clipping,
|
||||
dbch_combo,
|
||||
dbch_comboex,
|
||||
dbch_comm,
|
||||
dbch_commctrl,
|
||||
dbch_commdlg,
|
||||
dbch_console,
|
||||
dbch_crtdll,
|
||||
dbch_cursor,
|
||||
dbch_datetime,
|
||||
dbch_dc,
|
||||
dbch_ddeml,
|
||||
dbch_ddraw,
|
||||
dbch_debug,
|
||||
dbch_debugstr,
|
||||
dbch_delayhlp,
|
||||
dbch_dialog,
|
||||
dbch_dinput,
|
||||
dbch_dll,
|
||||
dbch_dosfs,
|
||||
dbch_dosmem,
|
||||
dbch_dplay,
|
||||
dbch_driver,
|
||||
dbch_dsound,
|
||||
dbch_edit,
|
||||
dbch_elfdll,
|
||||
dbch_enhmetafile,
|
||||
dbch_event,
|
||||
dbch_exec,
|
||||
dbch_file,
|
||||
dbch_fixup,
|
||||
dbch_font,
|
||||
dbch_gdi,
|
||||
dbch_global,
|
||||
dbch_graphics,
|
||||
dbch_header,
|
||||
dbch_heap,
|
||||
dbch_hook,
|
||||
dbch_hotkey,
|
||||
dbch_icmp,
|
||||
dbch_icon,
|
||||
dbch_imagehlp,
|
||||
dbch_imagelist,
|
||||
dbch_imm,
|
||||
dbch_int,
|
||||
dbch_int10,
|
||||
dbch_int16,
|
||||
dbch_int17,
|
||||
dbch_int19,
|
||||
dbch_int21,
|
||||
dbch_int31,
|
||||
dbch_io,
|
||||
dbch_ipaddress,
|
||||
dbch_key,
|
||||
dbch_keyboard,
|
||||
dbch_ldt,
|
||||
dbch_listbox,
|
||||
dbch_listview,
|
||||
dbch_local,
|
||||
dbch_mci,
|
||||
dbch_mcianim,
|
||||
dbch_mciavi,
|
||||
dbch_mcicda,
|
||||
dbch_mcimidi,
|
||||
dbch_mciwave,
|
||||
dbch_mdi,
|
||||
dbch_menu,
|
||||
dbch_message,
|
||||
dbch_metafile,
|
||||
dbch_midi,
|
||||
dbch_mmaux,
|
||||
dbch_mmio,
|
||||
dbch_mmsys,
|
||||
dbch_mmtime,
|
||||
dbch_module,
|
||||
dbch_monthcal,
|
||||
dbch_mpr,
|
||||
dbch_msacm,
|
||||
dbch_msg,
|
||||
dbch_msvideo,
|
||||
dbch_nativefont,
|
||||
dbch_nonclient,
|
||||
dbch_ntdll,
|
||||
dbch_odbc,
|
||||
dbch_ole,
|
||||
dbch_pager,
|
||||
dbch_palette,
|
||||
dbch_pidl,
|
||||
dbch_print,
|
||||
dbch_process,
|
||||
dbch_profile,
|
||||
dbch_progress,
|
||||
dbch_prop,
|
||||
dbch_propsheet,
|
||||
dbch_psapi,
|
||||
dbch_psdrv,
|
||||
dbch_ras,
|
||||
dbch_rebar,
|
||||
dbch_reg,
|
||||
dbch_region,
|
||||
dbch_relay,
|
||||
dbch_resource,
|
||||
dbch_scroll,
|
||||
dbch_security,
|
||||
dbch_segment,
|
||||
dbch_seh,
|
||||
dbch_selector,
|
||||
dbch_sendmsg,
|
||||
dbch_server,
|
||||
dbch_setupx,
|
||||
dbch_shell,
|
||||
dbch_snoop,
|
||||
dbch_sound,
|
||||
dbch_static,
|
||||
dbch_statusbar,
|
||||
dbch_storage,
|
||||
dbch_stress,
|
||||
dbch_string,
|
||||
dbch_syscolor,
|
||||
dbch_system,
|
||||
dbch_tab,
|
||||
dbch_tape,
|
||||
dbch_tapi,
|
||||
dbch_task,
|
||||
dbch_text,
|
||||
dbch_thread,
|
||||
dbch_thunk,
|
||||
dbch_timer,
|
||||
dbch_toolbar,
|
||||
dbch_toolhelp,
|
||||
dbch_tooltips,
|
||||
dbch_trackbar,
|
||||
dbch_treeview,
|
||||
dbch_ttydrv,
|
||||
dbch_tweak,
|
||||
dbch_typelib,
|
||||
dbch_updown,
|
||||
dbch_ver,
|
||||
dbch_virtual,
|
||||
dbch_vxd,
|
||||
dbch_wave,
|
||||
dbch_win,
|
||||
dbch_win16drv,
|
||||
dbch_win32,
|
||||
dbch_wing,
|
||||
dbch_winsock,
|
||||
dbch_winspool,
|
||||
dbch_wnet,
|
||||
dbch_x11,
|
||||
dbch_x11drv
|
||||
};
|
||||
|
||||
const char * const debug_ch_name[DEBUG_CHANNEL_COUNT] = {
|
||||
"accel",
|
||||
"advapi",
|
||||
"animate",
|
||||
"aspi",
|
||||
"atom",
|
||||
"avifile",
|
||||
"bitblt",
|
||||
"bitmap",
|
||||
"caret",
|
||||
"cdrom",
|
||||
"class",
|
||||
"clipboard",
|
||||
"clipping",
|
||||
"combo",
|
||||
"comboex",
|
||||
"comm",
|
||||
"commctrl",
|
||||
"commdlg",
|
||||
"console",
|
||||
"crtdll",
|
||||
"cursor",
|
||||
"datetime",
|
||||
"dc",
|
||||
"ddeml",
|
||||
"ddraw",
|
||||
"debug",
|
||||
"debugstr",
|
||||
"delayhlp",
|
||||
"dialog",
|
||||
"dinput",
|
||||
"dll",
|
||||
"dosfs",
|
||||
"dosmem",
|
||||
"dplay",
|
||||
"driver",
|
||||
"dsound",
|
||||
"edit",
|
||||
"elfdll",
|
||||
"enhmetafile",
|
||||
"event",
|
||||
"exec",
|
||||
"file",
|
||||
"fixup",
|
||||
"font",
|
||||
"gdi",
|
||||
"global",
|
||||
"graphics",
|
||||
"header",
|
||||
"heap",
|
||||
"hook",
|
||||
"hotkey",
|
||||
"icmp",
|
||||
"icon",
|
||||
"imagehlp",
|
||||
"imagelist",
|
||||
"imm",
|
||||
"int",
|
||||
"int10",
|
||||
"int16",
|
||||
"int17",
|
||||
"int19",
|
||||
"int21",
|
||||
"int31",
|
||||
"io",
|
||||
"ipaddress",
|
||||
"key",
|
||||
"keyboard",
|
||||
"ldt",
|
||||
"listbox",
|
||||
"listview",
|
||||
"local",
|
||||
"mci",
|
||||
"mcianim",
|
||||
"mciavi",
|
||||
"mcicda",
|
||||
"mcimidi",
|
||||
"mciwave",
|
||||
"mdi",
|
||||
"menu",
|
||||
"message",
|
||||
"metafile",
|
||||
"midi",
|
||||
"mmaux",
|
||||
"mmio",
|
||||
"mmsys",
|
||||
"mmtime",
|
||||
"module",
|
||||
"monthcal",
|
||||
"mpr",
|
||||
"msacm",
|
||||
"msg",
|
||||
"msvideo",
|
||||
"nativefont",
|
||||
"nonclient",
|
||||
"ntdll",
|
||||
"odbc",
|
||||
"ole",
|
||||
"pager",
|
||||
"palette",
|
||||
"pidl",
|
||||
"print",
|
||||
"process",
|
||||
"profile",
|
||||
"progress",
|
||||
"prop",
|
||||
"propsheet",
|
||||
"psapi",
|
||||
"psdrv",
|
||||
"ras",
|
||||
"rebar",
|
||||
"reg",
|
||||
"region",
|
||||
"relay",
|
||||
"resource",
|
||||
"scroll",
|
||||
"security",
|
||||
"segment",
|
||||
"seh",
|
||||
"selector",
|
||||
"sendmsg",
|
||||
"server",
|
||||
"setupx",
|
||||
"shell",
|
||||
"snoop",
|
||||
"sound",
|
||||
"static",
|
||||
"statusbar",
|
||||
"storage",
|
||||
"stress",
|
||||
"string",
|
||||
"syscolor",
|
||||
"system",
|
||||
"tab",
|
||||
"tape",
|
||||
"tapi",
|
||||
"task",
|
||||
"text",
|
||||
"thread",
|
||||
"thunk",
|
||||
"timer",
|
||||
"toolbar",
|
||||
"toolhelp",
|
||||
"tooltips",
|
||||
"trackbar",
|
||||
"treeview",
|
||||
"ttydrv",
|
||||
"tweak",
|
||||
"typelib",
|
||||
"updown",
|
||||
"ver",
|
||||
"virtual",
|
||||
"vxd",
|
||||
"wave",
|
||||
"win",
|
||||
"win16drv",
|
||||
"win32",
|
||||
"wing",
|
||||
"winsock",
|
||||
"winspool",
|
||||
"wnet",
|
||||
"x11",
|
||||
"x11drv"
|
||||
};
|
||||
int dbg_header_err( const char *dbg_channel, const char *func )
|
||||
{
|
||||
return dbg_printf( "err:%s:%s ", dbg_channel + 1, func );
|
||||
}
|
||||
|
||||
#endif /*DEBUG_RUNTIME*/
|
||||
int dbg_header_fixme( const char *dbg_channel, const char *func )
|
||||
{
|
||||
return dbg_printf( "fixme:%s:%s ", dbg_channel + 1, func );
|
||||
}
|
||||
|
||||
/* end of automatically generated debug.h */
|
||||
int dbg_header_warn( const char *dbg_channel, const char *func )
|
||||
{
|
||||
return dbg_printf( "warn:%s:%s ", dbg_channel + 1, func );
|
||||
}
|
||||
|
||||
int dbg_header_trace( const char *dbg_channel, const char *func )
|
||||
{
|
||||
return dbg_printf( "trace:%s:%s ", dbg_channel + 1, func );
|
||||
}
|
||||
|
|
|
@ -5,97 +5,91 @@
|
|||
#ifdef __WINE__ /* Debugging interface is internal to Wine */
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include "config.h"
|
||||
#include "windef.h"
|
||||
|
||||
#define DEBUG_RUNTIME
|
||||
|
||||
struct _GUID;
|
||||
|
||||
/* Internal definitions (do not use these directly) */
|
||||
|
||||
enum __DEBUG_CLASS { __DBCL_FIXME, __DBCL_ERR, __DBCL_WARN, __DBCL_TRACE, __DBCL_COUNT };
|
||||
|
||||
extern char __debug_msg_enabled[][__DBCL_COUNT];
|
||||
#ifndef NO_TRACE_MSGS
|
||||
# define __GET_DEBUGGING_trace(dbch) ((dbch)[0] & (1 << __DBCL_TRACE))
|
||||
#else
|
||||
# define __GET_DEBUGGING_trace(dbch) 0
|
||||
#endif
|
||||
|
||||
extern const char * const debug_cl_name[__DBCL_COUNT];
|
||||
extern const char * const debug_ch_name[];
|
||||
#ifndef NO_DEBUG_MSGS
|
||||
# define __GET_DEBUGGING_warn(dbch) ((dbch)[0] & (1 << __DBCL_WARN))
|
||||
# define __GET_DEBUGGING_fixme(dbch) ((dbch)[0] & (1 << __DBCL_FIXME))
|
||||
#else
|
||||
# define __GET_DEBUGGING_warn(dbch) 0
|
||||
# define __GET_DEBUGGING_fixme(dbch) 0
|
||||
#endif
|
||||
|
||||
#define __GET_DEBUGGING(dbcl,dbch) (__debug_msg_enabled[(dbch)][(dbcl)])
|
||||
#define __SET_DEBUGGING(dbcl,dbch,on) (__debug_msg_enabled[(dbch)][(dbcl)] = (on))
|
||||
/* define error macro regardless of what is configured */
|
||||
#define __GET_DEBUGGING_err(dbch) ((dbch)[0] & (1 << __DBCL_ERR))
|
||||
|
||||
#define __GET_DEBUGGING(dbcl,dbch) __GET_DEBUGGING_##dbcl(dbch)
|
||||
#define __SET_DEBUGGING(dbcl,dbch,on) \
|
||||
((on) ? ((dbch)[0] |= 1 << (dbcl)) : ((dbch)[0] &= ~(1 << (dbcl))))
|
||||
|
||||
#ifndef __GNUC__
|
||||
#define __FUNCTION__ ""
|
||||
#endif
|
||||
|
||||
#define __DPRINTF(dbcl,dbch) \
|
||||
(!__GET_DEBUGGING(dbcl,dbch) || \
|
||||
(dbg_printf("%s:%s:%s ", debug_cl_name[(dbcl)], debug_ch_name[(dbch)], __FUNCTION__),0)) \
|
||||
? 0 : dbg_printf
|
||||
|
||||
#define __DUMMY_DPRINTF 1 ? (void)0 : (void)((int (*)(char *, ...)) NULL)
|
||||
|
||||
(!__GET_DEBUGGING(dbcl,(dbch)) || (dbg_header_##dbcl((dbch),__FUNCTION__),0)) ? \
|
||||
(void)0 : (void)dbg_printf
|
||||
|
||||
/* Exported definitions and macros */
|
||||
|
||||
/* These function return a printable version of a string, including
|
||||
quotes. The string will be valid for some time, but not indefinitely
|
||||
as strings are re-used. */
|
||||
extern LPSTR debugstr_an (LPCSTR s, int n);
|
||||
extern LPSTR debugstr_a (LPCSTR s);
|
||||
extern LPSTR debugstr_wn (LPCWSTR s, int n);
|
||||
extern LPSTR debugstr_w (LPCWSTR s);
|
||||
extern LPSTR debugres_a (LPCSTR res);
|
||||
extern LPSTR debugres_w (LPCWSTR res);
|
||||
extern LPSTR debugstr_guid( const struct _GUID *id );
|
||||
extern LPSTR debugstr_hex_dump (const void *ptr, int len);
|
||||
extern LPCSTR debugstr_an (LPCSTR s, int n);
|
||||
extern LPCSTR debugstr_wn (LPCWSTR s, int n);
|
||||
extern LPCSTR debugres_a (LPCSTR res);
|
||||
extern LPCSTR debugres_w (LPCWSTR res);
|
||||
extern LPCSTR debugstr_guid( const struct _GUID *id );
|
||||
extern LPCSTR debugstr_hex_dump (const void *ptr, int len);
|
||||
extern int dbg_header_err( const char *dbg_channel, const char *func );
|
||||
extern int dbg_header_warn( const char *dbg_channel, const char *func );
|
||||
extern int dbg_header_fixme( const char *dbg_channel, const char *func );
|
||||
extern int dbg_header_trace( const char *dbg_channel, const char *func );
|
||||
extern int dbg_vprintf( const char *format, va_list args );
|
||||
|
||||
static inline LPCSTR debugstr_a( LPCSTR s ) { return debugstr_an( s, 80 ); }
|
||||
static inline LPCSTR debugstr_w( LPCWSTR s ) { return debugstr_wn( s, 80 ); }
|
||||
|
||||
#ifdef __GNUC__
|
||||
extern int dbg_printf(const char *format, ...) __attribute__((format (printf,1,2)));
|
||||
#else
|
||||
extern int dbg_printf(const char *format, ...);
|
||||
#endif
|
||||
|
||||
/* use configure to allow user to compile out debugging messages */
|
||||
#ifndef NO_TRACE_MSGS
|
||||
#define TRACE __DPRINTF(__DBCL_TRACE,*DBCH_DEFAULT)
|
||||
#define TRACE_(ch) __DPRINTF(__DBCL_TRACE,dbch_##ch)
|
||||
#define TRACE_ON(ch) __GET_DEBUGGING(__DBCL_TRACE,dbch_##ch)
|
||||
#else
|
||||
#define TRACE __DUMMY_DPRINTF
|
||||
#define TRACE_(ch) __DUMMY_DPRINTF
|
||||
#define TRACE_ON(ch) 0
|
||||
#endif /* NO_TRACE_MSGS */
|
||||
#define TRACE __DPRINTF(trace,__dbch_default)
|
||||
#define TRACE_(ch) __DPRINTF(trace,dbch_##ch)
|
||||
#define TRACE_ON(ch) __GET_DEBUGGING(trace,dbch_##ch)
|
||||
|
||||
#ifndef NO_DEBUG_MSGS
|
||||
#define WARN __DPRINTF(__DBCL_WARN,*DBCH_DEFAULT)
|
||||
#define WARN_(ch) __DPRINTF(__DBCL_WARN,dbch_##ch)
|
||||
#define WARN_ON(ch) __GET_DEBUGGING(__DBCL_WARN,dbch_##ch)
|
||||
#define FIXME __DPRINTF(__DBCL_FIXME,*DBCH_DEFAULT)
|
||||
#define FIXME_(ch) __DPRINTF(__DBCL_FIXME,dbch_##ch)
|
||||
#define FIXME_ON(ch) __GET_DEBUGGING(__DBCL_FIXME,dbch_##ch)
|
||||
#else
|
||||
#define WARN __DUMMY_DPRINTF
|
||||
#define WARN_(ch) __DUMMY_DPRINTF
|
||||
#define WARN_ON(ch) 0
|
||||
#define FIXME __DUMMY_DPRINTF
|
||||
#define FIXME_(ch) __DUMMY_DPRINTF
|
||||
#define FIXME_ON(ch) 0
|
||||
#endif /* NO_DEBUG_MSGS */
|
||||
#define WARN __DPRINTF(warn,__dbch_default)
|
||||
#define WARN_(ch) __DPRINTF(warn,dbch_##ch)
|
||||
#define WARN_ON(ch) __GET_DEBUGGING(warn,dbch_##ch)
|
||||
|
||||
/* define error macro regardless of what is configured */
|
||||
/* Solaris got an 'ERR' define in <sys/reg.h> */
|
||||
#undef ERR
|
||||
#define ERR __DPRINTF(__DBCL_ERR,*DBCH_DEFAULT)
|
||||
#define ERR_(ch) __DPRINTF(__DBCL_ERR,dbch_##ch)
|
||||
#define ERR_ON(ch) __GET_DEBUGGING(__DBCL_ERR,dbch_##ch)
|
||||
#define FIXME __DPRINTF(fixme,__dbch_default)
|
||||
#define FIXME_(ch) __DPRINTF(fixme,dbch_##ch)
|
||||
#define FIXME_ON(ch) __GET_DEBUGGING(fixme,dbch_##ch)
|
||||
|
||||
#undef ERR /* Solaris got an 'ERR' define in <sys/reg.h> */
|
||||
#define ERR __DPRINTF(err,__dbch_default)
|
||||
#define ERR_(ch) __DPRINTF(err,dbch_##ch)
|
||||
#define ERR_ON(ch) __GET_DEBUGGING(err,dbch_##ch)
|
||||
|
||||
#define DECLARE_DEBUG_CHANNEL(ch) \
|
||||
extern const int dbch_##ch;
|
||||
extern char dbch_##ch[];
|
||||
#define DEFAULT_DEBUG_CHANNEL(ch) \
|
||||
extern const int dbch_##ch; static const int *const DBCH_DEFAULT = &dbch_##ch;
|
||||
extern char dbch_##ch[]; static char * const __dbch_default = dbch_##ch;
|
||||
|
||||
#define DPRINTF dbg_printf
|
||||
#define MESSAGE dbg_printf
|
||||
|
|
|
@ -218,7 +218,7 @@ extern void ASPI_DOS_HandleInt(CONTEXT86 *context);
|
|||
(!seg || IS_SELECTOR_SYSTEM(seg))? (void *)off : PTR_SEG_OFF_TO_LIN(seg,off&0xffff))
|
||||
|
||||
#define INT_BARF(context,num) \
|
||||
fprintf( stderr, "int%x: unknown/not implemented parameters:\n" \
|
||||
ERR( "int%x: unknown/not implemented parameters:\n" \
|
||||
"int%x: AX %04x, BX %04x, CX %04x, DX %04x, " \
|
||||
"SI %04x, DI %04x, DS %04x, ES %04x\n", \
|
||||
(num), (num), AX_reg(context), BX_reg(context), CX_reg(context), \
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
#include <sys/types.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
|
@ -21,7 +22,7 @@
|
|||
#include "debugtools.h"
|
||||
#include "winerror.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(global)
|
||||
DEFAULT_DEBUG_CHANNEL(global);
|
||||
|
||||
/* Global arena block */
|
||||
typedef struct
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "wine/winbase16.h"
|
||||
#include "wine/winestring.h"
|
||||
|
@ -19,7 +20,7 @@
|
|||
#include "toolhelp.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(heap)
|
||||
DEFAULT_DEBUG_CHANNEL(heap);
|
||||
|
||||
/* Note: the heap data structures are based on what Pietrek describes in his
|
||||
* book 'Windows 95 System Programming Secrets'. The layout is not exactly
|
||||
|
|
|
@ -8,12 +8,13 @@
|
|||
#include "config.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include "ldt.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(ldt)
|
||||
DEFAULT_DEBUG_CHANNEL(ldt);
|
||||
|
||||
#ifdef __i386__
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#ifdef HAVE_SYS_MMAN_H
|
||||
|
@ -28,7 +29,7 @@
|
|||
#include "server.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(virtual)
|
||||
DEFAULT_DEBUG_CHANNEL(virtual);
|
||||
|
||||
#ifndef MS_SYNC
|
||||
#define MS_SYNC 0
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "winbase.h"
|
||||
#include "wine/winbase16.h"
|
||||
#include "wine/winestring.h"
|
||||
|
@ -16,7 +17,7 @@
|
|||
#include "winerror.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(reg)
|
||||
DEFAULT_DEBUG_CHANNEL(reg);
|
||||
|
||||
static BYTE PF[64] = {0,};
|
||||
|
||||
|
|
|
@ -52,8 +52,7 @@ gimme1 (int n)
|
|||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
LPSTR
|
||||
debugstr_an (LPCSTR src, int n)
|
||||
LPCSTR debugstr_an (LPCSTR src, int n)
|
||||
{
|
||||
LPSTR dst, res;
|
||||
|
||||
|
@ -96,16 +95,7 @@ debugstr_an (LPCSTR src, int n)
|
|||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
LPSTR
|
||||
debugstr_a (LPCSTR s)
|
||||
{
|
||||
return debugstr_an (s, 80);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
LPSTR
|
||||
debugstr_wn (LPCWSTR src, int n)
|
||||
LPCSTR debugstr_wn (LPCWSTR src, int n)
|
||||
{
|
||||
LPSTR dst, res;
|
||||
|
||||
|
@ -146,37 +136,31 @@ debugstr_wn (LPCWSTR src, int n)
|
|||
return res;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
LPSTR
|
||||
debugstr_w (LPCWSTR s)
|
||||
{
|
||||
return debugstr_wn (s, 80);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
/* This routine returns a nicely formated name of the resource res
|
||||
If the resource name is a string, it will return '<res-name>'
|
||||
If it is a number, it will return #<4-digit-hex-number> */
|
||||
LPSTR debugres_a( LPCSTR res )
|
||||
LPCSTR debugres_a( LPCSTR res )
|
||||
{
|
||||
char resname[10];
|
||||
char *resname;
|
||||
if (HIWORD(res)) return debugstr_a(res);
|
||||
sprintf(resname, "#%04x", LOWORD(res));
|
||||
return debugstr_a (resname);
|
||||
resname = gimme1(6);
|
||||
sprintf(resname, "#%04x", LOWORD(res) );
|
||||
return resname;
|
||||
}
|
||||
|
||||
LPSTR debugres_w( LPCWSTR res )
|
||||
LPCSTR debugres_w( LPCWSTR res )
|
||||
{
|
||||
char resname[10];
|
||||
char *resname;
|
||||
if (HIWORD(res)) return debugstr_w(res);
|
||||
sprintf(resname, "#%04x", LOWORD(res));
|
||||
return debugstr_a (resname);
|
||||
resname = gimme1(6);
|
||||
sprintf( resname, "#%04x", LOWORD(res) );
|
||||
return resname;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
LPSTR debugstr_guid( const GUID *id )
|
||||
LPCSTR debugstr_guid( const GUID *id )
|
||||
{
|
||||
LPSTR str;
|
||||
|
||||
|
@ -232,7 +216,6 @@ int dbg_printf(const char *format, ...)
|
|||
}
|
||||
|
||||
|
||||
|
||||
/*--< Function >---------------------------------------------------------
|
||||
**
|
||||
** debugstr_hex_dump
|
||||
|
@ -252,8 +235,7 @@ int dbg_printf(const char *format, ...)
|
|||
** TRACE("struct dump is \n%s", debugstr_hex_dump(&x, sizeof(x)));
|
||||
**
|
||||
**-------------------------------------------------------------------------*/
|
||||
LPSTR
|
||||
debugstr_hex_dump (const void *ptr, int len)
|
||||
LPCSTR debugstr_hex_dump (const void *ptr, int len)
|
||||
{
|
||||
/* Locals */
|
||||
char dumpbuf[59];
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "windef.h"
|
||||
|
|
18
misc/main.c
18
misc/main.c
|
@ -104,6 +104,7 @@ struct options Options =
|
|||
FALSE, /* Perfect graphics */
|
||||
FALSE, /* No DGA */
|
||||
FALSE, /* No XSHM */
|
||||
FALSE, /* DXGrab */
|
||||
NULL, /* Alternate config file name */
|
||||
0 /* screenDepth */
|
||||
};
|
||||
|
@ -194,7 +195,7 @@ BOOL MAIN_ParseDebugOptions(char *options)
|
|||
int l, cls, dotracerelay = TRACE_ON(relay);
|
||||
|
||||
l = strlen(options);
|
||||
if (l<3)
|
||||
if (l<2)
|
||||
return FALSE;
|
||||
if (options[l-1]=='\n') options[l-1]='\0';
|
||||
do
|
||||
|
@ -226,7 +227,7 @@ BOOL MAIN_ParseDebugOptions(char *options)
|
|||
for (i=0; i<DEBUG_CHANNEL_COUNT; i++)
|
||||
for(j=0; j<DEBUG_CLASS_COUNT; j++)
|
||||
if(cls == -1 || cls == j)
|
||||
__SET_DEBUGGING( j, i, (*options=='+') );
|
||||
__SET_DEBUGGING( j, debug_channels[i], (*options=='+') );
|
||||
}
|
||||
else if (!lstrncmpiA(options+1, "relay=", 6) ||
|
||||
!lstrncmpiA(options+1, "snoop=", 6))
|
||||
|
@ -235,10 +236,11 @@ BOOL MAIN_ParseDebugOptions(char *options)
|
|||
char *s, *s2, ***output, c;
|
||||
|
||||
for (i=0; i<DEBUG_CHANNEL_COUNT; i++)
|
||||
if (debug_ch_name && (!lstrncmpiA(debug_ch_name[i],options+1,5))){
|
||||
if (!strncasecmp( debug_channels[i] + 1, options + 1, 5))
|
||||
{
|
||||
for(j=0; j<DEBUG_CLASS_COUNT; j++)
|
||||
if(cls == -1 || cls == j)
|
||||
__SET_DEBUGGING( j, i, 1 );
|
||||
__SET_DEBUGGING( j, debug_channels[i], 1 );
|
||||
break;
|
||||
}
|
||||
/* should never happen, maybe assert(i!=DEBUG_CHANNEL_COUNT)? */
|
||||
|
@ -277,10 +279,11 @@ BOOL MAIN_ParseDebugOptions(char *options)
|
|||
{
|
||||
int i, j;
|
||||
for (i=0; i<DEBUG_CHANNEL_COUNT; i++)
|
||||
if (debug_ch_name && (!lstrncmpiA(options+1,debug_ch_name[i],l-1))){
|
||||
if (!strncasecmp( debug_channels[i] + 1, options + 1, l - 1) && !debug_channels[i][l])
|
||||
{
|
||||
for(j=0; j<DEBUG_CLASS_COUNT; j++)
|
||||
if(cls == -1 || cls == j)
|
||||
__SET_DEBUGGING( j, i, (*options=='+') );
|
||||
__SET_DEBUGGING( j, debug_channels[i], (*options=='+') );
|
||||
break;
|
||||
}
|
||||
if (i==DEBUG_CHANNEL_COUNT)
|
||||
|
@ -316,8 +319,7 @@ BOOL MAIN_ParseDebugOptions(char *options)
|
|||
MESSAGE("Available message types:\n");
|
||||
MESSAGE("%-9s ","all");
|
||||
for(i=0;i<DEBUG_CHANNEL_COUNT;i++)
|
||||
if(debug_ch_name[i])
|
||||
MESSAGE("%-9s%c",debug_ch_name[i],
|
||||
MESSAGE("%-9s%c",debug_channels[i] + 1,
|
||||
(((i+2)%8==0)?'\n':' '));
|
||||
MESSAGE("\n\n");
|
||||
ExitProcess(1);
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
|
@ -49,7 +50,7 @@
|
|||
#include "server.h"
|
||||
#include "services.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(reg)
|
||||
DEFAULT_DEBUG_CHANNEL(reg);
|
||||
|
||||
static void REGISTRY_Init(void);
|
||||
/* FIXME: following defines should be configured global ... */
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include "callback.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(int31)
|
||||
DEFAULT_DEBUG_CHANNEL(int31);
|
||||
|
||||
#define DOS_GET_DRIVE(reg) ((reg) ? (reg) - 1 : DRIVE_GetCurrentDrive())
|
||||
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
#include "miscemu.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(int);
|
||||
|
||||
/**********************************************************************
|
||||
* INT_Int2aHandler
|
||||
*
|
||||
|
|
|
@ -6,9 +6,10 @@
|
|||
#include <stdlib.h>
|
||||
#include "msdos.h"
|
||||
#include "miscemu.h"
|
||||
/* #define DEBUG_INT */
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(int);
|
||||
|
||||
/**********************************************************************
|
||||
* INT_Int3dHandler
|
||||
*
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include "miscemu.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(int);
|
||||
|
||||
/***********************************************************************
|
||||
* INT_Int41Handler
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include "miscemu.h"
|
||||
#include "debugtools.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(int);
|
||||
|
||||
/***********************************************************************
|
||||
* INT_Int4bHandler
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "config.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "winbase.h"
|
||||
#include "winnt.h"
|
||||
|
|
|
@ -21,16 +21,14 @@ cat <<EOF
|
|||
|
||||
#define DEBUG_CLASS_COUNT __DBCL_COUNT
|
||||
|
||||
#ifdef DEBUG_RUNTIME
|
||||
|
||||
const char * const debug_cl_name[] = { "fixme", "err", "warn", "trace" };
|
||||
static const char * const debug_cl_name[] = { "fixme", "err", "warn", "trace" };
|
||||
|
||||
EOF
|
||||
|
||||
chno=0
|
||||
for ch in $DEBUG_CHANNELS
|
||||
do
|
||||
echo "const int dbch_$ch = $chno;"
|
||||
echo "char dbch_$ch[] = \"\\003$ch\";"
|
||||
chno=`expr $chno + 1`
|
||||
done
|
||||
echo
|
||||
|
@ -38,35 +36,25 @@ echo "#define DEBUG_CHANNEL_COUNT $chno"
|
|||
|
||||
count=1
|
||||
echo
|
||||
echo 'char __debug_msg_enabled[DEBUG_CHANNEL_COUNT][DEBUG_CLASS_COUNT] = {'
|
||||
echo 'static char * const debug_channels[DEBUG_CHANNEL_COUNT] = {'
|
||||
for ch in $DEBUG_CHANNELS
|
||||
do
|
||||
if [ "${count}" != "${chno}" ]; then
|
||||
echo "{1, 1, 0, 0},"
|
||||
echo " dbch_${ch},"
|
||||
else
|
||||
echo "{1, 1, 0, 0}"
|
||||
echo " dbch_${ch}"
|
||||
fi
|
||||
count=`expr $count + 1`
|
||||
done
|
||||
echo '};'
|
||||
|
||||
count=1
|
||||
echo
|
||||
echo 'const char * const debug_ch_name[DEBUG_CHANNEL_COUNT] = {'
|
||||
for ch in $DEBUG_CHANNELS
|
||||
for cls in err fixme warn trace
|
||||
do
|
||||
if [ "${count}" != "${chno}" ]; then
|
||||
echo "\"${ch}\",";
|
||||
else
|
||||
echo "\"${ch}\"";
|
||||
fi
|
||||
count=`expr $count + 1`
|
||||
done
|
||||
echo '};'
|
||||
cat <<EOF
|
||||
|
||||
cat <<EOF
|
||||
|
||||
#endif /*DEBUG_RUNTIME*/
|
||||
|
||||
/* end of automatically generated debug.h */
|
||||
int dbg_header_$cls( const char *dbg_channel, const char *func )
|
||||
{
|
||||
return dbg_printf( "$cls:%s:%s ", dbg_channel + 1, func );
|
||||
}
|
||||
EOF
|
||||
done
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
|
@ -26,9 +28,8 @@
|
|||
#include "syslevel.h"
|
||||
#include "winerror.h"
|
||||
|
||||
DECLARE_DEBUG_CHANNEL(thunk)
|
||||
DECLARE_DEBUG_CHANNEL(dosmem)
|
||||
DECLARE_DEBUG_CHANNEL(win32)
|
||||
DEFAULT_DEBUG_CHANNEL(thunk);
|
||||
DECLARE_DEBUG_CHANNEL(win32);
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -42,7 +43,7 @@ DECLARE_DEBUG_CHANNEL(win32)
|
|||
*/
|
||||
void WINAPI LogApiThk( LPSTR func )
|
||||
{
|
||||
TRACE_(thunk)( "%s\n", debugstr_a(func) );
|
||||
TRACE( "%s\n", debugstr_a(func) );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -52,7 +53,7 @@ void WINAPI LogApiThk( LPSTR func )
|
|||
*/
|
||||
void WINAPI LogApiThkLSF( LPSTR func, CONTEXT86 *context )
|
||||
{
|
||||
TRACE_(thunk)( "%s\n", debugstr_a(func) );
|
||||
TRACE( "%s\n", debugstr_a(func) );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -62,7 +63,7 @@ void WINAPI LogApiThkLSF( LPSTR func, CONTEXT86 *context )
|
|||
*/
|
||||
void WINAPI LogApiThkSL( LPSTR func, CONTEXT86 *context )
|
||||
{
|
||||
TRACE_(thunk)( "%s\n", debugstr_a(func) );
|
||||
TRACE( "%s\n", debugstr_a(func) );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -72,7 +73,7 @@ void WINAPI LogApiThkSL( LPSTR func, CONTEXT86 *context )
|
|||
*/
|
||||
void WINAPI LogCBThkSL( LPSTR func, CONTEXT86 *context )
|
||||
{
|
||||
TRACE_(thunk)( "%s\n", debugstr_a(func) );
|
||||
TRACE( "%s\n", debugstr_a(func) );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -135,7 +136,7 @@ static LPVOID _loadthunk(LPCSTR module, LPCSTR func, LPCSTR module32,
|
|||
|
||||
if ((hmod = LoadLibrary16(module)) <= 32)
|
||||
{
|
||||
ERR_(thunk)("(%s, %s, %s): Unable to load '%s', error %d\n",
|
||||
ERR("(%s, %s, %s): Unable to load '%s', error %d\n",
|
||||
module, func, module32, module, hmod);
|
||||
return 0;
|
||||
}
|
||||
|
@ -143,14 +144,14 @@ static LPVOID _loadthunk(LPCSTR module, LPCSTR func, LPCSTR module32,
|
|||
if ( !(ordinal = NE_GetOrdinal(hmod, func))
|
||||
|| !(TD16 = PTR_SEG_TO_LIN(NE_GetEntryPointEx(hmod, ordinal, FALSE))))
|
||||
{
|
||||
ERR_(thunk)("(%s, %s, %s): Unable to find '%s'\n",
|
||||
ERR("(%s, %s, %s): Unable to find '%s'\n",
|
||||
module, func, module32, func);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (TD32 && memcmp(TD16->magic, TD32->magic, 4))
|
||||
{
|
||||
ERR_(thunk)("(%s, %s, %s): Bad magic %c%c%c%c (should be %c%c%c%c)\n",
|
||||
ERR("(%s, %s, %s): Bad magic %c%c%c%c (should be %c%c%c%c)\n",
|
||||
module, func, module32,
|
||||
TD16->magic[0], TD16->magic[1], TD16->magic[2], TD16->magic[3],
|
||||
TD32->magic[0], TD32->magic[1], TD32->magic[2], TD32->magic[3]);
|
||||
|
@ -159,14 +160,14 @@ static LPVOID _loadthunk(LPCSTR module, LPCSTR func, LPCSTR module32,
|
|||
|
||||
if (TD32 && TD16->checksum != TD32->checksum)
|
||||
{
|
||||
ERR_(thunk)("(%s, %s, %s): Wrong checksum %08lx (should be %08lx)\n",
|
||||
ERR("(%s, %s, %s): Wrong checksum %08lx (should be %08lx)\n",
|
||||
module, func, module32, TD16->checksum, TD32->checksum);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!TD32 && checksum && checksum != *(LPDWORD)TD16)
|
||||
{
|
||||
ERR_(thunk)("(%s, %s, %s): Wrong checksum %08lx (should be %08lx)\n",
|
||||
ERR("(%s, %s, %s): Wrong checksum %08lx (should be %08lx)\n",
|
||||
module, func, module32, *(LPDWORD)TD16, checksum);
|
||||
return 0;
|
||||
}
|
||||
|
@ -209,19 +210,19 @@ UINT WINAPI ThunkConnect32(
|
|||
{
|
||||
directionSL = TRUE;
|
||||
|
||||
TRACE_(thunk)("SL01 thunk %s (%lx) <- %s (%s), Reason: %ld\n",
|
||||
TRACE("SL01 thunk %s (%lx) <- %s (%s), Reason: %ld\n",
|
||||
module32, (DWORD)TD, module16, thunkfun16, dwReason);
|
||||
}
|
||||
else if (!strncmp(TD->magic, "LS01", 4))
|
||||
{
|
||||
directionSL = FALSE;
|
||||
|
||||
TRACE_(thunk)("LS01 thunk %s (%lx) -> %s (%s), Reason: %ld\n",
|
||||
TRACE("LS01 thunk %s (%lx) -> %s (%s), Reason: %ld\n",
|
||||
module32, (DWORD)TD, module16, thunkfun16, dwReason);
|
||||
}
|
||||
else
|
||||
{
|
||||
ERR_(thunk)("Invalid magic %c%c%c%c\n",
|
||||
ERR("Invalid magic %c%c%c%c\n",
|
||||
TD->magic[0], TD->magic[1], TD->magic[2], TD->magic[3]);
|
||||
return 0;
|
||||
}
|
||||
|
@ -242,7 +243,7 @@ UINT WINAPI ThunkConnect32(
|
|||
|
||||
if (SL16->fpData == NULL)
|
||||
{
|
||||
ERR_(thunk)("ThunkConnect16 was not called!\n");
|
||||
ERR("ThunkConnect16 was not called!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -255,7 +256,7 @@ UINT WINAPI ThunkConnect32(
|
|||
tdb->next = SL32->data->targetDB; /* FIXME: not thread-safe! */
|
||||
SL32->data->targetDB = tdb;
|
||||
|
||||
TRACE_(thunk)("Process %08lx allocated TargetDB entry for ThunkDataSL %08lx\n",
|
||||
TRACE("Process %08lx allocated TargetDB entry for ThunkDataSL %08lx\n",
|
||||
(DWORD)PROCESS_Current(), (DWORD)SL32->data);
|
||||
}
|
||||
else
|
||||
|
@ -806,7 +807,7 @@ BOOL WINAPI SSInit16()
|
|||
*/
|
||||
BOOL WINAPI SSOnBigStack()
|
||||
{
|
||||
TRACE_(thunk)("Yes, thunking is initialized\n");
|
||||
TRACE("Yes, thunking is initialized\n");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -874,12 +875,12 @@ DWORD WINAPIV SSCall(
|
|||
case 48: ret = fun(args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8],args[9],args[10],args[11]);
|
||||
break;
|
||||
default:
|
||||
WARN_(thunk)("Unsupported nr of arguments, %ld\n",nr);
|
||||
WARN("Unsupported nr of arguments, %ld\n",nr);
|
||||
ret = 0;
|
||||
break;
|
||||
|
||||
}
|
||||
TRACE_(thunk)(" returning %ld ...\n",ret);
|
||||
TRACE(" returning %ld ...\n",ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -998,7 +999,7 @@ BOOL16 WINAPI IsPeFormat16(
|
|||
return FALSE;
|
||||
}
|
||||
if (mzh.e_magic!=IMAGE_DOS_SIGNATURE) {
|
||||
WARN_(dosmem)("File has not got dos signature!\n");
|
||||
WARN("File has not got dos signature!\n");
|
||||
_lclose(hf);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1051,7 +1052,7 @@ void WINAPI K32Thk1632Prolog( CONTEXT86 *context )
|
|||
char *stack32 = (char *)NtCurrentTeb()->cur_stack - argSize;
|
||||
STACK16FRAME *frame16 = (STACK16FRAME *)stack16 - 1;
|
||||
|
||||
TRACE_(thunk)("before SYSTHUNK hack: EBP: %08lx ESP: %08lx cur_stack: %08lx\n",
|
||||
TRACE("before SYSTHUNK hack: EBP: %08lx ESP: %08lx cur_stack: %08lx\n",
|
||||
EBP_reg(context), ESP_reg(context), NtCurrentTeb()->cur_stack);
|
||||
|
||||
memset(frame16, '\0', sizeof(STACK16FRAME));
|
||||
|
@ -1064,7 +1065,7 @@ void WINAPI K32Thk1632Prolog( CONTEXT86 *context )
|
|||
ESP_reg(context) = (DWORD)stack32 + 4;
|
||||
EBP_reg(context) = ESP_reg(context) + argSize;
|
||||
|
||||
TRACE_(thunk)("after SYSTHUNK hack: EBP: %08lx ESP: %08lx cur_stack: %08lx\n",
|
||||
TRACE("after SYSTHUNK hack: EBP: %08lx ESP: %08lx cur_stack: %08lx\n",
|
||||
EBP_reg(context), ESP_reg(context), NtCurrentTeb()->cur_stack);
|
||||
}
|
||||
|
||||
|
@ -1092,7 +1093,7 @@ void WINAPI K32Thk1632Epilog( CONTEXT86 *context )
|
|||
|
||||
DWORD nArgsPopped = ESP_reg(context) - (DWORD)stack32;
|
||||
|
||||
TRACE_(thunk)("before SYSTHUNK hack: EBP: %08lx ESP: %08lx cur_stack: %08lx\n",
|
||||
TRACE("before SYSTHUNK hack: EBP: %08lx ESP: %08lx cur_stack: %08lx\n",
|
||||
EBP_reg(context), ESP_reg(context), NtCurrentTeb()->cur_stack);
|
||||
|
||||
NtCurrentTeb()->cur_stack = (DWORD)frame16->frame32;
|
||||
|
@ -1100,7 +1101,7 @@ void WINAPI K32Thk1632Epilog( CONTEXT86 *context )
|
|||
ESP_reg(context) = (DWORD)stack16 + nArgsPopped;
|
||||
EBP_reg(context) = frame16->ebp;
|
||||
|
||||
TRACE_(thunk)("after SYSTHUNK hack: EBP: %08lx ESP: %08lx cur_stack: %08lx\n",
|
||||
TRACE("after SYSTHUNK hack: EBP: %08lx ESP: %08lx cur_stack: %08lx\n",
|
||||
EBP_reg(context), ESP_reg(context), NtCurrentTeb()->cur_stack);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,8 +43,8 @@
|
|||
#include "windef.h"
|
||||
#include "x11drv.h"
|
||||
|
||||
DEFAULT_DEBUG_CHANNEL(event)
|
||||
DECLARE_DEBUG_CHANNEL(win)
|
||||
DEFAULT_DEBUG_CHANNEL(event);
|
||||
DECLARE_DEBUG_CHANNEL(win);
|
||||
|
||||
/* X context to associate a hwnd to an X window */
|
||||
extern XContext winContext;
|
||||
|
@ -1005,20 +1005,19 @@ static Atom EVENT_SelectionRequest_TARGETS( Window requestor, Atom target, Atom
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG_RUNTIME
|
||||
{
|
||||
int i;
|
||||
for ( i = 0; i < cTargets; i++)
|
||||
if (TRACE_ON(event))
|
||||
{
|
||||
if (targets[i])
|
||||
int i;
|
||||
for ( i = 0; i < cTargets; i++)
|
||||
{
|
||||
char *itemFmtName = TSXGetAtomName(display, targets[i]);
|
||||
TRACE("\tAtom# %d: Type %s\n", i, itemFmtName);
|
||||
TSXFree(itemFmtName);
|
||||
if (targets[i])
|
||||
{
|
||||
char *itemFmtName = TSXGetAtomName(display, targets[i]);
|
||||
TRACE("\tAtom# %d: Type %s\n", i, itemFmtName);
|
||||
TSXFree(itemFmtName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Update the X property */
|
||||
TRACE("\tUpdating property %s...", TSXGetAtomName(display, rprop));
|
||||
|
|
|
@ -258,16 +258,7 @@ void X11DRV_USER_ParseOptions(int *argc, char *argv[])
|
|||
if (X11DRV_USER_GetResource( db, ".debugoptions", &value))
|
||||
MAIN_ParseDebugOptions((char*)value.addr);
|
||||
if (X11DRV_USER_GetResource( db, ".debugmsg", &value))
|
||||
{
|
||||
#ifndef DEBUG_RUNTIME
|
||||
MESSAGE("%s: Option \"-debugmsg\" not implemented.\n" \
|
||||
" Recompile with DEBUG_RUNTIME in include/debugtools.h defined.\n",
|
||||
argv[0]);
|
||||
exit(1);
|
||||
#else
|
||||
MAIN_ParseDebugOptions((char*)value.addr);
|
||||
#endif
|
||||
}
|
||||
MAIN_ParseDebugOptions((char*)value.addr);
|
||||
|
||||
if (X11DRV_USER_GetResource( db, ".dll", &value))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue