1b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com#ifndef __LIGHT_SYMBOLS__ 2b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com#define __LIGHT_SYMBOLS__ 3b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com#define LS_TRACE(functionName,fileId,lineNumber) LightSymbol __lstr(functionName,fileId,lineNumber); 4b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 5b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com#include <stdio.h> 6b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com#include <string.h> 7b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com#include <stdlib.h> 8b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 9b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com//#include <pthread.h> 100d9e3da8bb853c5ed96d13646a4264eb57b13a2abungeman@google.com#include <windows.h> 11b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 12b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.comtypedef char* SZ; 13b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 14b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com#define LIGHT_SYMBOLS_FILE "LIGHT_SYMBOLS_FILE" 15b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 16b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.comclass LightSymbol { 17b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com const char* sym; 18b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com int fileId; 19b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com int lineNumber; 20b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 21b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com LightSymbol* parentFrame; 22b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 23b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com typedef LightSymbol* PLightSymbol; 24b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 25b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com static PLightSymbol lsFrames[1000]; 26b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com static HANDLE handleFrames[1000]; 27b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com static SZ* fileNames; 28b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com static bool busted; 29b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 30b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.compublic: 31b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com LightSymbol(const char* sym, int fileId, int lineNumber); 32b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 33b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com ~LightSymbol(); 34b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 35b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com static bool GetCallStack(char* sz, int len, const char* separator); 36b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 37b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.comprivate: 38b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 39b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com static LightSymbol** getThreadFrameContainer(); 40b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 41b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com bool GetCallStackCore(char* sz, int len, const char* separator) const ; 42b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 43b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com static LightSymbol* GetCurrentFrame() ; 44b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 45b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com static void SetCurrentFrame(LightSymbol* ls) ; 46b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 47b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com static const char* trim(char* sz) ; 48b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com}; 49b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com 50b89a03c890668f98d9f8b269b6ad00824409435bskia.committer@gmail.com#endif 51