summaryrefslogtreecommitdiff
path: root/src/stable/trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/stable/trace.h')
-rw-r--r--src/stable/trace.h310
1 files changed, 155 insertions, 155 deletions
diff --git a/src/stable/trace.h b/src/stable/trace.h
index da67f03..d47df9c 100644
--- a/src/stable/trace.h
+++ b/src/stable/trace.h
@@ -17,165 +17,165 @@
17 17
18namespace Bu 18namespace Bu
19{ 19{
20/* template<typename t> void __tracer_format( t &v ) 20/* template<typename t> void __tracer_format( t &v )
21 { 21 {
22 __tracer_format( *const_cast<const t *>(&v) ); 22 __tracer_format( *const_cast<const t *>(&v) );
23 } 23 }
24*/ 24*/
25 template<typename t> void __tracer_format( const t &v ) 25 template<typename t> void __tracer_format( const t &v )
26 { 26 {
27 Bu::sio << v; 27 Bu::sio << v;
28 } 28 }
29 29
30 void __tracer( const char *pf ); 30 void __tracer( const char *pf );
31 31
32 #define looper( vv ) \ 32 #define looper( vv ) \
33 for( ; *n; n++ ) \ 33 for( ; *n; n++ ) \
34 { \ 34 { \
35 if( bInBracket == true ) \ 35 if( bInBracket == true ) \
36 { \ 36 { \
37 if( *n == '>' ) \ 37 if( *n == '>' ) \
38 bInBracket = false; \ 38 bInBracket = false; \
39 } \ 39 } \
40 else if( *n == ',' || *n == ')' ) \ 40 else if( *n == ',' || *n == ')' ) \
41 { \ 41 { \
42 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); \ 42 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, 1, stdout ); \
43 fwrite("=", 1, 1, stdout); \ 43 fwrite("=", 1, 1, stdout); \
44 __tracer_format( vv ); \ 44 __tracer_format( vv ); \
45 s = n; \ 45 s = n; \
46 n++; \ 46 n++; \
47 break; \ 47 break; \
48 } \ 48 } \
49 else if( *n == '<' ) \ 49 else if( *n == '<' ) \
50 { \ 50 { \
51 bInBracket = true; \ 51 bInBracket = true; \
52 } \ 52 } \
53 } (void)0 53 } (void)0
54 54
55 template<typename t1> void __tracer( const char *pf, t1 &v1 ) 55 template<typename t1> void __tracer( const char *pf, t1 &v1 )
56 { 56 {
57 printf("trace: "); 57 printf("trace: ");
58 const char *s = pf; 58 const char *s = pf;
59 const char *n = pf; 59 const char *n = pf;
60 bool bInBracket = false; 60 bool bInBracket = false;
61 looper( v1 ); 61 looper( v1 );
62 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout ); 62 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
63 fwrite( "\n", 1, 1, stdout ); 63 fwrite( "\n", 1, 1, stdout );
64 fflush( stdout ); 64 fflush( stdout );
65 } 65 }
66 66
67 template<typename t1, typename t2> void __tracer( const char *pf, 67 template<typename t1, typename t2> void __tracer( const char *pf,
68 t1 &v1, t2 &v2 ) 68 t1 &v1, t2 &v2 )
69 { 69 {
70 printf("trace: "); 70 printf("trace: ");
71 const char *s = pf; 71 const char *s = pf;
72 const char *n = pf; 72 const char *n = pf;
73 bool bInBracket = false; 73 bool bInBracket = false;
74 looper( v1 ); 74 looper( v1 );
75 looper( v2 ); 75 looper( v2 );
76 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout ); 76 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
77 fwrite( "\n", 1, 1, stdout ); 77 fwrite( "\n", 1, 1, stdout );
78 fflush( stdout ); 78 fflush( stdout );
79 } 79 }
80 80
81 template<typename t1, typename t2, typename t3> 81 template<typename t1, typename t2, typename t3>
82 void __tracer( const char *pf, t1 &v1, t2 &v2, t3 &v3 ) 82 void __tracer( const char *pf, t1 &v1, t2 &v2, t3 &v3 )
83 { 83 {
84 printf("trace: "); 84 printf("trace: ");
85 const char *s = pf; 85 const char *s = pf;
86 const char *n = pf; 86 const char *n = pf;
87 bool bInBracket = false; 87 bool bInBracket = false;
88 looper( v1 ); 88 looper( v1 );
89 looper( v2 ); 89 looper( v2 );
90 looper( v3 ); 90 looper( v3 );
91 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout ); 91 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
92 fwrite( "\n", 1, 1, stdout ); 92 fwrite( "\n", 1, 1, stdout );
93 fflush( stdout ); 93 fflush( stdout );
94 } 94 }
95 95
96 template<typename t1, typename t2, typename t3, typename t4> 96 template<typename t1, typename t2, typename t3, typename t4>
97 void __tracer( const char *pf, t1 &v1, t2 &v2, t3 &v3, t4 &v4 ) 97 void __tracer( const char *pf, t1 &v1, t2 &v2, t3 &v3, t4 &v4 )
98 { 98 {
99 printf("trace: "); 99 printf("trace: ");
100 const char *s = pf; 100 const char *s = pf;
101 const char *n = pf; 101 const char *n = pf;
102 bool bInBracket = false; 102 bool bInBracket = false;
103 looper( v1 ); 103 looper( v1 );
104 looper( v2 ); 104 looper( v2 );
105 looper( v3 ); 105 looper( v3 );
106 looper( v4 ); 106 looper( v4 );
107 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout ); 107 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
108 fwrite( "\n", 1, 1, stdout ); 108 fwrite( "\n", 1, 1, stdout );
109 fflush( stdout ); 109 fflush( stdout );
110 } 110 }
111 111
112 template<typename t1, typename t2, typename t3, typename t4, typename t5> 112 template<typename t1, typename t2, typename t3, typename t4, typename t5>
113 void __tracer( const char *pf, t1 &v1, t2 &v2, t3 &v3, t4 &v4, t5 &v5 ) 113 void __tracer( const char *pf, t1 &v1, t2 &v2, t3 &v3, t4 &v4, t5 &v5 )
114 { 114 {
115 printf("trace: "); 115 printf("trace: ");
116 const char *s = pf; 116 const char *s = pf;
117 const char *n = pf; 117 const char *n = pf;
118 bool bInBracket = false; 118 bool bInBracket = false;
119 looper( v1 ); 119 looper( v1 );
120 looper( v2 ); 120 looper( v2 );
121 looper( v3 ); 121 looper( v3 );
122 looper( v4 ); 122 looper( v4 );
123 looper( v5 ); 123 looper( v5 );
124 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout ); 124 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
125 fwrite( "\n", 1, 1, stdout ); 125 fwrite( "\n", 1, 1, stdout );
126 fflush( stdout ); 126 fflush( stdout );
127 } 127 }
128 128
129 template<typename t1, typename t2, typename t3, typename t4, typename t5, 129 template<typename t1, typename t2, typename t3, typename t4, typename t5,
130 typename t6> 130 typename t6>
131 void __tracer( const char *pf, t1 &v1, t2 &v2, t3 &v3, t4 &v4, t5 &v5, 131 void __tracer( const char *pf, t1 &v1, t2 &v2, t3 &v3, t4 &v4, t5 &v5,
132 t6 &v6) 132 t6 &v6)
133 { 133 {
134 printf("trace: "); 134 printf("trace: ");
135 const char *s = pf; 135 const char *s = pf;
136 const char *n = pf; 136 const char *n = pf;
137 bool bInBracket = false; 137 bool bInBracket = false;
138 looper( v1 ); 138 looper( v1 );
139 looper( v2 ); 139 looper( v2 );
140 looper( v3 ); 140 looper( v3 );
141 looper( v4 ); 141 looper( v4 );
142 looper( v5 ); 142 looper( v5 );
143 looper( v6 ); 143 looper( v6 );
144 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout ); 144 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
145 fwrite( "\n", 1, 1, stdout ); 145 fwrite( "\n", 1, 1, stdout );
146 fflush( stdout ); 146 fflush( stdout );
147 } 147 }
148 148
149 template<typename t1, typename t2, typename t3, typename t4, typename t5, 149 template<typename t1, typename t2, typename t3, typename t4, typename t5,
150 typename t6, typename t7> 150 typename t6, typename t7>
151 void __tracer( const char *pf, t1 &v1, t2 &v2, t3 &v3, t4 &v4, t5 &v5, 151 void __tracer( const char *pf, t1 &v1, t2 &v2, t3 &v3, t4 &v4, t5 &v5,
152 t6 &v6, t7 &v7 ) 152 t6 &v6, t7 &v7 )
153 { 153 {
154 printf("trace: "); 154 printf("trace: ");
155 const char *s = pf; 155 const char *s = pf;
156 const char *n = pf; 156 const char *n = pf;
157 bool bInBracket = false; 157 bool bInBracket = false;
158 looper( v1 ); 158 looper( v1 );
159 looper( v2 ); 159 looper( v2 );
160 looper( v3 ); 160 looper( v3 );
161 looper( v4 ); 161 looper( v4 );
162 looper( v5 ); 162 looper( v5 );
163 looper( v6 ); 163 looper( v6 );
164 looper( v7 ); 164 looper( v7 );
165 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout ); 165 fwrite( s, (ptrdiff_t)n-(ptrdiff_t)s, strlen(s), stdout );
166 fwrite( "\n", 1, 1, stdout ); 166 fwrite( "\n", 1, 1, stdout );
167 fflush( stdout ); 167 fflush( stdout );
168 } 168 }
169#undef looper 169#undef looper
170 170
171 template<> void __tracer_format<float>( const float &v ); 171 template<> void __tracer_format<float>( const float &v );
172 template<> void __tracer_format<double>( const double &v ); 172 template<> void __tracer_format<double>( const double &v );
173 template<> void __tracer_format<void *>( void * const &v ); 173 template<> void __tracer_format<void *>( void * const &v );
174 template<> void __tracer_format<char *>( char * const &v ); 174 template<> void __tracer_format<char *>( char * const &v );
175 template<> void __tracer_format<char **>( char ** const &v ); 175 template<> void __tracer_format<char **>( char ** const &v );
176 template<> void __tracer_format<void const *>( void const * const &v ); 176 template<> void __tracer_format<void const *>( void const * const &v );
177 template<> void __tracer_format<char const *>( char const * const &v ); 177 template<> void __tracer_format<char const *>( char const * const &v );
178 template<> void __tracer_format<char const **>( char const ** const &v ); 178 template<> void __tracer_format<char const **>( char const ** const &v );
179} 179}
180 180
181#ifdef BU_TRACE 181#ifdef BU_TRACE