Windows2000/private/windbg64/debugger/wrkspc/windbg.hxx
2020-09-30 17:12:32 +02:00

374 lines
14 KiB
C++

// Transport Layer:
#ifdef CINDIV_TL_DEFINE
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszDescription, NULL);
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszDll, NULL);
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszParams, NULL);
#endif
// Paths
#ifdef CPATHS_DEFINE
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszSourceCodeSearchPath, NULL);
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszSymPath, _strdup("%SystemRoot%\\symbols"));
VAR_WRKSPC(PSTR, CMULTI_SZ_ITEM_WKSP, m_pszRootMappingPairs, NULL);
#endif
// Individual Exception:
#ifdef CINDIV_EXCEP_DEFINE
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszName, NULL);
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_dwAction, efdNotify);
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszFirstCmd, NULL);
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszSecondCmd, NULL);
#endif
// Kernel debugger params
#ifdef CKERNEL_DBG_DEFINE
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bInitialBp, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bUseModem, FALSE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bGoExit, FALSE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bUseCrashDump, FALSE);
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_dwBaudRate, 19200);
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_dwPort, 2);
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_dwCache, 102400);
// What platform are we running on?
#if defined(HOST_MIPS)
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_mptPlatform, mptmips);
#elif defined(HOST_i386)
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_mptPlatform, mptix86);
#elif defined(HOST_ALPHA)
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_mptPlatform, mptdaxp);
#elif defined(HOST_PPC)
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_mptPlatform, mptntppc);
#elif defined(HOST_IA64)
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_mptPlatform, mptia64);
#else
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_mptPlatform, mptUnknown);
#endif
// These variables are not stored in the registry
STD_VAR_WRKSPC(PSTR, m_pszCrashDump, NULL);
#endif
// Individual Workspace:
#ifdef CWORKSPACE_DEFINE
// Automatically reload source files changed outside of the debugger
// TRUE - Automatically reload changed source files without prompting
// FALSE - Ask the user whether he wants to reload the source file
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bAutoReloadSrcFiles, FALSE);
// Attempt to evaluate all UINT pointers as unicode strings
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bUnicodeIsDefault, FALSE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bSrcMode, TRUE);
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszSelectedTL, _strdup(szWDBG_DEFAULT_TL_NAME));
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszWindowTitle, NULL);
VAR_WRKSPC(PSTR, CMULTI_SZ_ITEM_WKSP, m_pszRootMappingPairs, NULL);
VAR_WRKSPC(PSTR, CMULTI_SZ_ITEM_WKSP, m_pszBreakPoints, NULL);
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszCmdLine, NULL);
// children of the new process will be debugged.
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bDebugChildren, TRUE);
// When attaching to process, indicates whether the process
// should be stopped or left running
// Help text: [Don't break into newly attached processes]
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bAttachGo, FALSE);
// Do/Don't break into new child processes
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bChildGo, TRUE);
// Indicates whether the process should be stopped when a thread terminates.
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bGoOnThreadTerm, TRUE);
// Indicates whether to continue or stop when an image is loaded
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bGoOnModLoad, TRUE);
// Toggle: notification when a thread is terminated.
// FALSE implies GoOnThreadTerm == TRUE
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bNotifyThreadTerm, TRUE);
// Toggle: notification of when a thread is created.
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bNotifyThreadCreate, TRUE);
// Debuggee inherits handles - for debugging debuggers
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bInheritHandles, FALSE);
// First step goes to entry point, not main
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bEPIsFirstStep, FALSE);
// Enable Kernel debugger
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bKernelDebugger, FALSE);
// For 16 bit processes, documented in help file and accesible from the UI.
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bWowVdm, FALSE);
// When disconnecting from the remote, should a "simple disconnect" be performed,
// or should the remote be shutdown.
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bDisconnectOnExit, TRUE);
// Slow stepping
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bAlternateSS, FALSE);
// Ignore all symbol errors when loading symbols
// TRUE - allows the debugger to load symbols that have mismatched timestaps, checksums,
// and when the image header could not be read because the header has been paged out.
// FALSE - the debugger will not load symbols that experience errors while loading
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bIgnoreAllSymbolErrors, TRUE);
// Ask for user intervention if symbols could not be loaded without errors
// TRUE - ask for user intervention
// FALSE - do not ask for user intervention
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bBrowseForSymsOnSymLoadErrors, TRUE);
// m_bIgnoreAllSymbolErrors == TRUE (fBrowseForSymsOnSymLoadErrors is ignored)
// A symbol file will be loaded regardless of any errors such as mismatched
// timestamps, checksum errors, etc.
// m_bIgnoreAllSymbolErrors == FALSE
// BrowseForSymsOnSymLoadErrors == FALSE
// Any error during symbol loading will prevent the symbol for that file to
// be loaded. The user will NOT be prompted for any action.
// BrowseForSymsOnSymLoadErrors == TRUE
// If any errors during symbol loading occur, the symbol will not be loaded.
// However, the user will be asked to intervene by specifying a symbol file
// for image in question or choose not to load a symbols file.
// Make WinDbg noisier! Do a grep for more details.
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bVerbose, TRUE);
// Toggle between long & short context notation
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bShortContext, TRUE);
// Toggles between the masm evaluator and the C evaluator.
// See command line ".opt masmeval" for the same amount of info,
// better yet, see the help file.
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bMasmEval, FALSE);
// Background symbol loading
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bShBackground, FALSE);
// Ignore version checking on DLLs
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bNoVersion, FALSE);
// Indicates whether a user mode crash dump is being debugged.
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bUserCrashDump, FALSE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bRegModeExt, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bRegModeMMU, FALSE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bShowSegVal, FALSE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bLfOptAppend, FALSE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bLfOptAuto, FALSE);
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_dopDisAsmOpts,
dopSym | dopFlatAddr | dopNeverOpenAutomatically | dopRaw);
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszLogFileName, _strdup("windbg.log"));
// workspaces
D_CONT_WRKSPC(CAll_Exceptions_WKSP, m_dynacontAllExceptions);
CONT_WRKSPC(CPaths_WKSP, m_contPaths);
CONT_WRKSPC(CKernel_Debugging_WKSP, m_contKernelDbgPreferences);
// These variables are not stored in the registry
STD_VAR_WRKSPC(PSTR, m_pszRemotePipe, NULL);
STD_VAR_WRKSPC(PSTR, m_pszUserCrashDump, NULL);
#endif
/*
// All the workspaces
#ifdef CALL_WORKSPACES_DEFINE
#endif
*/
// Debuggee:
#ifdef CDEBUGGEE_DEFINE
VAR_WRKSPC(PSTR,
CSZ_ITEM_WKSP,
m_pszNameOfPreferredWorkSpace,
_strdup(CBase_Windbg_WKSP::m_pszUntitledWorkSpaceName)
);
M_CONT_WRKSPC(CWorkSpace_WKSP, m_contWorkSpace);
#endif
// All Debuggees
#ifdef CALL_DEBUGGEES_DEFINE
CONT_WRKSPC(CDebuggee_WKSP, m_contDebuggee);
#endif
// User preferences:
#ifdef CPREFERENCES_DEFINE
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bShowToolbar, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bShowStatusBar, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bAlwaysSaveWorkspace, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bPromptBeforeSavingWorkspace, TRUE);
VAR_WRKSPC(PSTR, CMULTI_SZ_ITEM_WKSP, m_pszFilesMRUList, NULL);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bKeepTabs, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_nTabSize, 4);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bVertScrollBars, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bHorzScrollBars, TRUE);
// In bytes
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_dwUndoResize, 4096);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bSrchSysPathForExe, TRUE);
// Toggles: enter key at command line acts as a repeat of the previous command.
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bCommandRepeat, FALSE);
// Used by call stack window
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bFrameptr, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bRetAddr, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bFuncName, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bDisplacement, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bParams, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bStack, FALSE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bSource, FALSE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bModule, TRUE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bRtf, FALSE);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bFrameNum, FALSE);
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_dwMaxFrames, 500);
D_CONT_WRKSPC(CAll_TLs_WKSP, m_dynacont_All_TLs);
CONT_WRKSPC(CUser_WM_Messages_WKSP, m_contUser_WM_Messages);
D_CONT_WRKSPC(CAll_Exceptions_WKSP, m_dynacontAllExceptionsMasterList);
#endif
// Individual window layout information
#ifdef CINDIV_WIN_LAYOUT_DEFINE
// Common to all windows
VAR_WRKSPC(int, CINT_ITEM_WKSP, m_nType, -1);
VAR_WRKSPC(int, CINT_ITEM_WKSP, m_nOrder, -1);
VAR_WRKSPC(WINDOW_STATE, CWINDOW_STATE_ITEM_WKSP, m_nWindowState, WSTATE_NORMAL);
VAR_WRKSPC(int, CINT_ITEM_WKSP, m_nX, CW_USEDEFAULT);
VAR_WRKSPC(int, CINT_ITEM_WKSP, m_nY, CW_USEDEFAULT);
VAR_WRKSPC(int, CINT_ITEM_WKSP, m_nWidth, CW_USEDEFAULT);
VAR_WRKSPC(int, CINT_ITEM_WKSP, m_nHeight, CW_USEDEFAULT);
BIN_VAR_WRKSPC(LOGFONT, CLOGFONT_ITEM_WKSP, m_logfont );
// Used by document window
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszFileName, NULL);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bReadOnly, TRUE);
VAR_WRKSPC(int, CINT_ITEM_WKSP, m_nColumn, 0);
VAR_WRKSPC(int, CINT_ITEM_WKSP, m_nLine, 0);
// Used by Paned windows
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_dwPaneFlags, 0);
VAR_WRKSPC(DWORD, CDWORD_ITEM_WKSP, m_dwPerCent, 0);
// Used by memory window
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_nFormat, 0);
VAR_WRKSPC(BOOL, CINT_ITEM_WKSP, m_bLive, FALSE);
// Used by memory window & paned window
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszExpression, NULL);
#endif
// An window layout
#ifdef CWIN_LAYOUT_DEFINE
// All other windows
CONT_WRKSPC(CIndivWinLayout_WKSP, m_contFrameWindows);
D_CONT_WRKSPC(CAllChildWindows_WKSP, m_dynacontChildWindows);
#endif
// All window layouts
#ifdef CALL_WIN_LAYOUTS_DEFINE
VAR_WRKSPC(PSTR, CSZ_ITEM_WKSP, m_pszLastUsedWinLayout, _strdup("default"));
M_CONT_WRKSPC(CWinLayout_WKSP, m_contWinLayout);
#endif
// Root for windbg workspaces
#ifdef CWINDBG_DEFINE
// List of all of the debuggees
CONT_WRKSPC(CAll_Debuggees_WKSP, m_contAllDebuggees);
CONT_WRKSPC(CGlobalPreferences_WKSP, m_contGlobalPreferences);
// Window Layout
CONT_WRKSPC(CAllWindowLayouts_WKSP, m_contAllWinLayouts);
// These variables are not stored in the registry
//STD_VAR_WRKSPC(PSTR, m_pszProgramName, _strdup(m_pszNoProgramLoaded));
//STD_VAR_WRKSPC(PSTR, m_pszWorkSpaceName, _strdup(m_pszUntitledWorkSpaceName));
#endif