summaryrefslogtreecommitdiff
path: root/src/trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/trace.h')
-rw-r--r--src/trace.h37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/trace.h b/src/trace.h
index 82399c2..049d138 100644
--- a/src/trace.h
+++ b/src/trace.h
@@ -11,6 +11,7 @@
11#include <stdio.h> 11#include <stdio.h>
12#include <stdint.h> 12#include <stdint.h>
13#include <stddef.h> 13#include <stddef.h>
14#include <string.h>
14 15
15namespace Bu 16namespace Bu
16{ 17{
@@ -26,7 +27,12 @@ namespace Bu
26 #define looper( vv ) \ 27 #define looper( vv ) \
27 for( ; *n; n++ ) \ 28 for( ; *n; n++ ) \
28 { \ 29 { \
29 if( *n == ',' || *n == ')' ) \ 30 if( bInBracket == true ) \
31 { \
32 if( *n == '>' ) \
33 bInBracket = false; \
34 } \
35 else if( *n == ',' || *n == ')' ) \
30 { \ 36 { \
31 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); \ 37 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); \
32 fwrite("=", 1, 1, stdout); \ 38 fwrite("=", 1, 1, stdout); \
@@ -35,6 +41,10 @@ namespace Bu
35 n++; \ 41 n++; \
36 break; \ 42 break; \
37 } \ 43 } \
44 else if( *n == '<' ) \
45 { \
46 bInBracket = true; \
47 } \
38 } (void)0 48 } (void)0
39 49
40 template<typename t1> void __tracer( const char *pf, t1 &v1 ) 50 template<typename t1> void __tracer( const char *pf, t1 &v1 )
@@ -42,8 +52,9 @@ namespace Bu
42 printf("trace: "); 52 printf("trace: ");
43 const char *s = pf; 53 const char *s = pf;
44 const char *n = pf; 54 const char *n = pf;
55 bool bInBracket = false;
45 looper( v1 ); 56 looper( v1 );
46 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); 57 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
47 fwrite( "\n", 1, 1, stdout ); 58 fwrite( "\n", 1, 1, stdout );
48 fflush( stdout ); 59 fflush( stdout );
49 } 60 }
@@ -54,9 +65,10 @@ namespace Bu
54 printf("trace: "); 65 printf("trace: ");
55 const char *s = pf; 66 const char *s = pf;
56 const char *n = pf; 67 const char *n = pf;
68 bool bInBracket = false;
57 looper( v1 ); 69 looper( v1 );
58 looper( v2 ); 70 looper( v2 );
59 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); 71 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
60 fwrite( "\n", 1, 1, stdout ); 72 fwrite( "\n", 1, 1, stdout );
61 fflush( stdout ); 73 fflush( stdout );
62 } 74 }
@@ -67,10 +79,11 @@ namespace Bu
67 printf("trace: "); 79 printf("trace: ");
68 const char *s = pf; 80 const char *s = pf;
69 const char *n = pf; 81 const char *n = pf;
82 bool bInBracket = false;
70 looper( v1 ); 83 looper( v1 );
71 looper( v2 ); 84 looper( v2 );
72 looper( v3 ); 85 looper( v3 );
73 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); 86 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
74 fwrite( "\n", 1, 1, stdout ); 87 fwrite( "\n", 1, 1, stdout );
75 fflush( stdout ); 88 fflush( stdout );
76 } 89 }
@@ -81,11 +94,12 @@ namespace Bu
81 printf("trace: "); 94 printf("trace: ");
82 const char *s = pf; 95 const char *s = pf;
83 const char *n = pf; 96 const char *n = pf;
97 bool bInBracket = false;
84 looper( v1 ); 98 looper( v1 );
85 looper( v2 ); 99 looper( v2 );
86 looper( v3 ); 100 looper( v3 );
87 looper( v4 ); 101 looper( v4 );
88 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); 102 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
89 fwrite( "\n", 1, 1, stdout ); 103 fwrite( "\n", 1, 1, stdout );
90 fflush( stdout ); 104 fflush( stdout );
91 } 105 }
@@ -96,12 +110,13 @@ namespace Bu
96 printf("trace: "); 110 printf("trace: ");
97 const char *s = pf; 111 const char *s = pf;
98 const char *n = pf; 112 const char *n = pf;
113 bool bInBracket = false;
99 looper( v1 ); 114 looper( v1 );
100 looper( v2 ); 115 looper( v2 );
101 looper( v3 ); 116 looper( v3 );
102 looper( v4 ); 117 looper( v4 );
103 looper( v5 ); 118 looper( v5 );
104 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); 119 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
105 fwrite( "\n", 1, 1, stdout ); 120 fwrite( "\n", 1, 1, stdout );
106 fflush( stdout ); 121 fflush( stdout );
107 } 122 }
@@ -114,13 +129,14 @@ namespace Bu
114 printf("trace: "); 129 printf("trace: ");
115 const char *s = pf; 130 const char *s = pf;
116 const char *n = pf; 131 const char *n = pf;
132 bool bInBracket = false;
117 looper( v1 ); 133 looper( v1 );
118 looper( v2 ); 134 looper( v2 );
119 looper( v3 ); 135 looper( v3 );
120 looper( v4 ); 136 looper( v4 );
121 looper( v5 ); 137 looper( v5 );
122 looper( v6 ); 138 looper( v6 );
123 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); 139 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
124 fwrite( "\n", 1, 1, stdout ); 140 fwrite( "\n", 1, 1, stdout );
125 fflush( stdout ); 141 fflush( stdout );
126 } 142 }
@@ -133,6 +149,7 @@ namespace Bu
133 printf("trace: "); 149 printf("trace: ");
134 const char *s = pf; 150 const char *s = pf;
135 const char *n = pf; 151 const char *n = pf;
152 bool bInBracket = false;
136 looper( v1 ); 153 looper( v1 );
137 looper( v2 ); 154 looper( v2 );
138 looper( v3 ); 155 looper( v3 );
@@ -140,7 +157,7 @@ namespace Bu
140 looper( v5 ); 157 looper( v5 );
141 looper( v6 ); 158 looper( v6 );
142 looper( v7 ); 159 looper( v7 );
143 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); 160 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
144 fwrite( "\n", 1, 1, stdout ); 161 fwrite( "\n", 1, 1, stdout );
145 fflush( stdout ); 162 fflush( stdout );
146 } 163 }
@@ -156,8 +173,8 @@ namespace Bu
156 template<> void __tracer_format<uint64_t>( const uint64_t &v ); 173 template<> void __tracer_format<uint64_t>( const uint64_t &v );
157 template<> void __tracer_format<bool>( const bool &v ); 174 template<> void __tracer_format<bool>( const bool &v );
158 template<> void __tracer_format<char>( const char &v ); 175 template<> void __tracer_format<char>( const char &v );
159 //template<> void __tracer_format<long>( const long &v ); 176 template<> void __tracer_format<long>( const long &v );
160 //template<> void __tracer_format<unsigned long>( const unsigned long &v ); 177 template<> void __tracer_format<unsigned long>( const unsigned long &v );
161 template<> void __tracer_format<float>( const float &v ); 178 template<> void __tracer_format<float>( const float &v );
162 template<> void __tracer_format<double>( const double &v ); 179 template<> void __tracer_format<double>( const double &v );
163 template<> void __tracer_format<void *>( void * const &v ); 180 template<> void __tracer_format<void *>( void * const &v );