diff options
Diffstat (limited to 'chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h')
-rw-r--r-- | chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h b/chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h new file mode 100644 index 00000000000..02494e63b54 --- /dev/null +++ b/chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h @@ -0,0 +1,50 @@ +#ifndef __LIGHT_SYMBOLS__ +#define __LIGHT_SYMBOLS__ +#define LS_TRACE(functionName,fileId,lineNumber) LightSymbol __lstr(functionName,fileId,lineNumber); + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +//#include <pthread.h> +#include <windows.h> + +typedef char* SZ; + +#define LIGHT_SYMBOLS_FILE "LIGHT_SYMBOLS_FILE" + +class LightSymbol { + const char* sym; + int fileId; + int lineNumber; + + LightSymbol* parentFrame; + + typedef LightSymbol* PLightSymbol; + + static PLightSymbol lsFrames[1000]; + static HANDLE handleFrames[1000]; + static SZ* fileNames; + static bool busted; + +public: + LightSymbol(const char* sym, int fileId, int lineNumber); + + ~LightSymbol(); + + static bool GetCallStack(char* sz, int len, const char* separator); + +private: + + static LightSymbol** getThreadFrameContainer(); + + bool GetCallStackCore(char* sz, int len, const char* separator) const ; + + static LightSymbol* GetCurrentFrame() ; + + static void SetCurrentFrame(LightSymbol* ls) ; + + static const char* trim(char* sz) ; +}; + +#endif |