134 lines
4.3 KiB
C
134 lines
4.3 KiB
C
|
|
||
|
#define GLOBALS
|
||
|
|
||
|
#include "cap.h"
|
||
|
|
||
|
/* * * * * * * * * * * G L O B A L V A R I A B L E S * * * * * * * * * */
|
||
|
|
||
|
char * VERSION = "3.51 (95.02.02)";
|
||
|
|
||
|
DWORD TlsThdBlk = 0xffffffff; // indexes into Thread Local Storage
|
||
|
DWORD TlsClient = 0xffffffff;
|
||
|
DWORD TlsCapInUse = 0xffffffff;
|
||
|
|
||
|
ULONG ulThdStackSize = 16*PAGE_SIZE;
|
||
|
HANDLE hProfMapObject;
|
||
|
|
||
|
ULONG ulLocProfBlkOff = 0;
|
||
|
PULONG pulProfBlkBase;
|
||
|
PULONG pulProfBlkShared;
|
||
|
|
||
|
PATCHDLLSEC aPatchDllSec [MAX_PATCHES];
|
||
|
int iPatchCnt = 0; // Number of DLLs being patched
|
||
|
|
||
|
SECTIONINFO aSecInfo [MAX_THREADS];
|
||
|
int iThdCnt = 0; // Number of thread being profiled
|
||
|
|
||
|
HANDLE hThisProcess;
|
||
|
HANDLE hLocalSem;
|
||
|
HANDLE hGlobalSem;
|
||
|
HANDLE hDoneEvent;
|
||
|
HANDLE hDumpEvent;
|
||
|
HANDLE hClearEvent;
|
||
|
HANDLE hPauseEvent;
|
||
|
HANDLE hDumpThread;
|
||
|
HANDLE hClearThread;
|
||
|
HANDLE hPauseThread;
|
||
|
PCH pDumpStack;
|
||
|
PCH pClearStack;
|
||
|
PCH pPauseStack;
|
||
|
CLIENT_ID DumpClientId;
|
||
|
CLIENT_ID ClearClientId;
|
||
|
CLIENT_ID PauseClientId;
|
||
|
|
||
|
// change to pointers from static arrays. actual memory is allocated in
|
||
|
// init.c (2-Feb-95: a-robw)
|
||
|
LPTSTR ptchBaseAppImageName = NULL;
|
||
|
LPTSTR ptchFullAppImageName = NULL;
|
||
|
|
||
|
HANDLE hOutFile;
|
||
|
TCHAR atchOutFileName[FILENAMELENGTH]="???";
|
||
|
TCHAR atchFuncName[MAXNAMELENGTH]; //061693 Change
|
||
|
int cChars;
|
||
|
|
||
|
LONGLONG liTimerFreq;
|
||
|
LONGLONG liCalibTicks = 0L;
|
||
|
ULONG ulCalibTime = 0L;
|
||
|
LONGLONG liCalibNestedTicks = 0L;
|
||
|
ULONG ulCalibNestedTime = 0L;
|
||
|
LONGLONG liRestartTicks = 0L;
|
||
|
LONGLONG liWasteOverheadSavRes = 0L;
|
||
|
LONGLONG liWasteOverhead = 0L;
|
||
|
LONGLONG liIncompleteTicks = 0L;
|
||
|
LONGLONG liTotalRunTime;
|
||
|
|
||
|
BOOL fProfiling = FALSE;
|
||
|
BOOL fPaused = FALSE;
|
||
|
DWORD dwDUMMYVAR;
|
||
|
TEB teb;
|
||
|
|
||
|
TCHAR atchPatchBuffer [PATCHFILESZ+1] = "???";
|
||
|
|
||
|
SECURITY_ATTRIBUTES SecAttributes;
|
||
|
SECURITY_DESCRIPTOR SecDescriptor;
|
||
|
BOOL fInThread = FALSE;
|
||
|
BOOL fPatchImage = FALSE;
|
||
|
|
||
|
#ifdef i386
|
||
|
FARPROC longjmpaddr = NULL;
|
||
|
FARPROC setjmpaddr = NULL;
|
||
|
#endif
|
||
|
|
||
|
FARPROC GetLastErrorAddr = NULL;
|
||
|
FARPROC loadlibAaddr = NULL;
|
||
|
FARPROC loadlibExAaddr = NULL;
|
||
|
#ifndef _CHICAGO_
|
||
|
FARPROC loadlibWaddr = NULL;
|
||
|
FARPROC loadlibExWaddr = NULL;
|
||
|
#endif // !_CHICAGO_
|
||
|
|
||
|
PTCHAR ptchPatchExes = "";
|
||
|
PTCHAR ptchPatchImports = "";
|
||
|
PTCHAR ptchPatchCallers = "";
|
||
|
BOOL bCallersToPatch;
|
||
|
|
||
|
PTCHAR ptchNameLength = ""; // 053193 Add
|
||
|
int iNameLength = 0; // 053193 Add
|
||
|
|
||
|
LPSTR lpSymbolSearchPath = NULL;
|
||
|
|
||
|
ULONG gfGlobalDebFlag;
|
||
|
|
||
|
BOOL fCsrSS = FALSE;
|
||
|
BOOL fCalibration = FALSE; // Default
|
||
|
BOOL fDllInit = TRUE; // value
|
||
|
BOOL fUndecorateName = TRUE; // for our flags
|
||
|
BOOL fDumpBinary = FALSE;
|
||
|
BOOL fCapThreadOn = TRUE;
|
||
|
BOOL fLoadLibraryOn = FALSE;
|
||
|
BOOL fSetJumpOn = FALSE;
|
||
|
BOOL fRegularDump = TRUE;
|
||
|
BOOL fChronoCollect = FALSE;
|
||
|
BOOL fChronoDump = FALSE;
|
||
|
BOOL fSecondChanceTranslation = TRUE;
|
||
|
unsigned long ulPerThdAllocSize = MEMSIZE;
|
||
|
|
||
|
CHAR cExcelDelimiter = ' '; // Delimiter for Excel
|
||
|
|
||
|
|
||
|
// This is for DumpChronoFuncs
|
||
|
TCHAR ptchChronoFuncs[CHRONO_FUNCS_SIZE];
|
||
|
TCHAR ptchExcludeFuncs[EXCLUDE_FUNCS_SIZE];
|
||
|
|
||
|
// This is for an optional output file
|
||
|
TCHAR ptchOutputFile[FILENAMELENGTH];
|
||
|
|
||
|
// This Flag is added to indicate if initialization is successful or not
|
||
|
// HWC 11/12/93
|
||
|
BOOL gfInitializationOK = FALSE;
|
||
|
|
||
|
|
||
|
#if defined(MIPS) || defined(ALPHA) || defined(_PPC_)
|
||
|
PATCHCODE PatchStub;
|
||
|
#endif
|