FireBirdLib - Topfield TMS PVR TAP Programming Library
CallTraceEnter.c
Go to the documentation of this file.
1#include <stdlib.h>
2#include "FBLib_debug.h"
3
4void CallTraceEnter(char *ProcName)
5{
6 char Spaces[101];
7 byte *ISOText;
8 extern dword __tap_ud__;
9
10 if(CallTraceDoNotReenter) return;
12
14
15 if(CallLevel >= CTSTACKSIZE) LogEntryFBLibPrintf(TRUE, "CallLevel Overflow! (TAPID 0x%8.8lx)", __tap_ud__);
16
17 if(ProcName)
18 {
20 {
21 StrToISOAlloc(ProcName, &ISOText);
22 memset(Spaces, ' ', CallLevel < CTSTACKSIZE ? CallLevel << 1 : 100);
23 Spaces[CallLevel < CTSTACKSIZE ? CallLevel << 1 : 100] = '\0';
24 TAP_Print("%s%s\n", Spaces, ISOText);
25 TAP_MemFree(ISOText);
26 }
27
28 //Add the current routine to the stack
30 {
32 CallTraceStack[CallLevel].EntryTime = TAP_GetTick();
33 }
34 }
35
36 CallLevel++;
38}
void CallTraceEnter(char *ProcName)
Definition: CallTraceEnter.c:4
tCallTraceStack CallTraceStack[CTSTACKSIZE]
Definition: CallTraceInit.c:4
bool CallTraceInitialized
Definition: CallTraceInit.c:6
dword CallLevel
Definition: CallTraceInit.c:3
bool CallTraceEnabled
Definition: CallTraceInit.c:5
bool CallTraceDoNotReenter
Definition: CallTraceInit.c:9
void CallTraceInit(void)
Definition: CallTraceInit.c:11
#define CTSTACKSIZE
Definition: FBLib_debug.h:7
const dword __tap_ud__
void LogEntryFBLibPrintf(bool Console, char *format,...)
#define TAP_Print
Definition: libFireBird.h:181
void StrToISOAlloc(const byte *SourceString, byte **DestString)
Definition: StrToISOAlloc.c:5