233 lines
5.4 KiB
C
233 lines
5.4 KiB
C
/*++
|
|
|
|
Copyright (c) 1992-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Windbg.h
|
|
|
|
Abstract:
|
|
|
|
Main header file for the Windbg debugger.
|
|
|
|
--*/
|
|
|
|
#if ! defined( _WINDBG_ )
|
|
#define _WINDBG_
|
|
|
|
//----------------------------------------------------------------------------
|
|
//
|
|
// Global limit constants.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#define MAX_MSG_TXT 4096 //Max text width in message boxes
|
|
|
|
#define TMP_STRING_SIZE 8192 //All purpose strings
|
|
|
|
#define MAX_CMDLINE_TXT 8192 //Max size for command line
|
|
#define MAX_VAR_MSG_TXT 8192 //Max size of a message built at run-time
|
|
|
|
#define MAX_LINE_SIZE 512 //Max inside length of editor line
|
|
#define MAX_USER_LINE MAX_LINE_SIZE //Max length of user line
|
|
|
|
//----------------------------------------------------------------------------
|
|
//
|
|
// UI constants.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
//
|
|
// Private window messages
|
|
//
|
|
|
|
#define WU_UPDATE (WM_USER + 0)
|
|
#define WU_INVALIDATE (WM_USER + 1)
|
|
#define WU_START_ENGINE (WM_USER + 2)
|
|
#define WU_ENGINE_STARTED (WM_USER + 3)
|
|
#define WU_SWITCH_WORKSPACE (WM_USER + 4)
|
|
#define WU_ENGINE_IDLE (WM_USER + 5)
|
|
#define WU_RECONFIGURE (WM_USER + 6)
|
|
|
|
// Position of window menu.
|
|
#define WINDOWMENU 4
|
|
|
|
// Position of file menu.
|
|
#define FILEMENU 0
|
|
|
|
// Toolbar control identifier.
|
|
#define ID_TOOLBAR 100
|
|
|
|
// Generic customize button ID.
|
|
#define ID_CUSTOMIZE 29876
|
|
// Generic show/hide toolbar button ID.
|
|
#define ID_SHOW_TOOLBAR 29877
|
|
|
|
// For MDI default menu handling.
|
|
#define IDM_FIRSTCHILD 30000
|
|
|
|
/*
|
|
** Include the defines which are used have numbers for string
|
|
** resources.
|
|
*/
|
|
|
|
#include "res_str.h"
|
|
|
|
//----------------------------------------------------------------------------
|
|
//
|
|
// Variables.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
// Set when the debugger is exiting.
|
|
extern BOOL g_Exit;
|
|
|
|
extern ULONG g_CommandLineStart;
|
|
extern BOOL g_QuietMode;
|
|
extern ULONG g_DefPriority;
|
|
|
|
typedef BOOL (WINAPI* PFN_FlashWindowEx)(PFLASHWINFO pfwi);
|
|
|
|
extern PFN_FlashWindowEx g_FlashWindowEx;
|
|
|
|
//Handle to instance data
|
|
extern HINSTANCE g_hInst;
|
|
|
|
//Main window frame
|
|
extern HWND g_hwndFrame;
|
|
|
|
// Handle to MDI client
|
|
extern HWND g_hwndMDIClient;
|
|
|
|
// Width and height of MDI client.
|
|
extern ULONG g_MdiWidth, g_MdiHeight;
|
|
|
|
//Handle to accelerator table
|
|
extern HACCEL g_hMainAccTable;
|
|
|
|
//Keyboard Hooks functions
|
|
extern HHOOK hKeyHook;
|
|
|
|
// menu that belongs to g_hwndFrame
|
|
extern HMENU g_hmenuMain;
|
|
extern HMENU g_hmenuMainSave;
|
|
|
|
//Window submenu
|
|
extern HMENU g_hmenuWindowSub;
|
|
|
|
// WinDBG title text
|
|
extern TCHAR g_MainTitleText[MAX_MSG_TXT];
|
|
|
|
extern TCHAR g_ExeFilePath[];
|
|
extern TCHAR g_DumpFilePath[];
|
|
extern TCHAR g_SrcFilePath[];
|
|
|
|
enum
|
|
{
|
|
COL_PLAIN,
|
|
COL_PLAIN_TEXT,
|
|
COL_CURRENT_LINE,
|
|
COL_CURRENT_LINE_TEXT,
|
|
COL_BP_CURRENT_LINE,
|
|
COL_BP_CURRENT_LINE_TEXT,
|
|
COL_ENABLED_BP,
|
|
COL_ENABLED_BP_TEXT,
|
|
COL_DISABLED_BP,
|
|
COL_DISABLED_BP_TEXT,
|
|
|
|
COL_COUNT
|
|
};
|
|
|
|
#define OUT_MASK_COL_BASE 0xff00
|
|
#define OUT_MASK_COL_COUNT 66
|
|
|
|
#define USER_OUT_MASK_COL 64
|
|
|
|
struct INDEXED_COLOR
|
|
{
|
|
PSTR Name;
|
|
COLORREF Color;
|
|
COLORREF Default;
|
|
HBRUSH Brush;
|
|
};
|
|
|
|
extern INDEXED_COLOR g_Colors[];
|
|
extern INDEXED_COLOR g_OutMaskColors[];
|
|
|
|
#define CUSTCOL_COUNT 16
|
|
|
|
extern COLORREF g_CustomColors[];
|
|
|
|
//----------------------------------------------------------------------------
|
|
//
|
|
// Functions.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
|
|
|
|
void UpdateFrameTitle(void);
|
|
void SetTitleServerText(PCSTR Format, ...);
|
|
void SetTitleSessionText(PCSTR Format, ...);
|
|
void SetTitleExplicitText(PCSTR Text);
|
|
void UpdateTitleSessionText(void);
|
|
|
|
BOOL CreateUiInterfaces(BOOL Remote, LPTSTR CreateOptions);
|
|
void ReleaseUiInterfaces(void);
|
|
BOOL ParseCommandLine(BOOL FirstParse);
|
|
|
|
#define StartDebugging() \
|
|
PostMessage(g_hwndFrame, WU_START_ENGINE, 0, 0)
|
|
void StopDebugging(BOOL UserRequest);
|
|
void TerminateApplication(BOOL Cancellable);
|
|
|
|
INDEXED_COLOR* GetIndexedColor(ULONG Index);
|
|
BOOL SetColor(ULONG Index, COLORREF Color);
|
|
BOOL GetOutMaskColors(ULONG Mask, COLORREF* Fg, COLORREF* Bg);
|
|
|
|
//----------------------------------------------------------------------------
|
|
//
|
|
// Macros.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
// Dbg have to be used for every assertion during Debugging time.
|
|
// If false Dbg Opens a fatal error message Box and Stops program
|
|
|
|
// Standard function to prompt an Assertion False
|
|
void ShowAssert(PTSTR condition, UINT line, PTSTR file);
|
|
|
|
|
|
// First, a sanity check
|
|
#ifdef Dbg
|
|
#undef Dbg
|
|
#endif
|
|
|
|
|
|
// Assert are assertions that will stay in final Release.
|
|
// If false Assert Opens a fatal error message Box and Stops program
|
|
#define RAssert(condition) \
|
|
{ \
|
|
if (!(condition)) \
|
|
{ \
|
|
ShowAssert( _T(#condition), __LINE__, _T(__FILE__) ); \
|
|
} \
|
|
}
|
|
|
|
|
|
#ifdef DBG
|
|
|
|
#define Assert RAssert
|
|
#define Dbg RAssert
|
|
|
|
#else // !DBG
|
|
|
|
//#pragma warning(disable: 4553) // disable warnings for pure expressions
|
|
//#pragma warning(disable: 4552) // disable level 4 warnings
|
|
#define Assert(x) ((void)0)
|
|
#define Dbg(condition) condition
|
|
|
|
#endif
|
|
|
|
#endif // _WINDBG_
|