CMGDK r49-rc2
|
00001 / * C o p y r i g h t ( C ) 2 0 0 0 M y S Q L A B 00002 00003 T h i s p r o g r a m i s f r e e s o f t w a r e ; y o u c a n r e d i s t r i b u t e i t a n d / o r m o d i f y 00004 00005 i t u n d e r t h e t e r m s o f t h e G N U G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d b y 00006 00007 t h e F r e e S o f t w a r e F o u n d a t i o n ; v e r s i o n 2 o f t h e L i c e n s e . 00008 00009 T h i s p r o g r a m i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l , 00010 00011 b u t W I T H O U T A N Y W A R R A N T Y ; w i t h o u t e v e n t h e i m p l i e d w a r r a n t y o f 00012 00013 M E R C H A N T A B I L I T Y o r F I T N E S S F O R A P A R T I C U L A R P U R P O S E . S e e t h e 00014 00015 G N U G e n e r a l P u b l i c L i c e n s e f o r m o r e d e t a i l s . 00016 00017 Y o u s h o u l d h a v e r e c e i v e d a c o p y o f t h e G N U G e n e r a l P u b l i c L i c e n s e 00018 00019 a l o n g w i t h t h i s p r o g r a m ; i f n o t , w r i t e t o t h e F r e e S o f t w a r e 00020 00021 F o u n d a t i o n , I n c . , 5 9 T e m p l e P l a c e , S u i t e 3 3 0 , B o s t o n , M A 0 2 1 1 1 - 1 3 0 7 U S A * / 00022 00023 # i f n d e f _ d b u g _ h 00024 00025 # d e f i n e _ d b u g _ h 00026 00027 # i f d e f _ _ c p l u s p l u s 00028 00029 e x t e r n " C " { 00030 00031 # e n d i f 00032 00033 # i f ! d e f i n e d ( D B U G _ O F F ) & & ! d e f i n e d ( _ l i n t ) 00034 00035 s t r u c t _ d b _ s t a c k _ f r a m e _ { 00036 00037 c o n s t c h a r * f u n c ; / * f u n c t i o n n a m e o f t h e p r e v i o u s s t a c k f r a m e * / 00038 00039 c o n s t c h a r * f i l e ; / * f i l e n a m e o f t h e f u n c t i o n o f p r e v i o u s f r a m e * / 00040 00041 u i n t l e v e l ; / * t h i s n e s t i n g l e v e l , h i g h e s t b i t e n a b l e s t r a c i n g * / 00042 00043 s t r u c t _ d b _ s t a c k _ f r a m e _ * p r e v ; / * p o i n t e r t o t h e p r e v i o u s f r a m e * / 00044 00045 } ; 00046 00047 s t r u c t _ d b _ c o d e _ s t a t e _ ; 00048 00049 e x t e r n m y _ b o o l _ d b u g _ o n _ ; 00050 00051 e x t e r n m y _ b o o l _ d b _ k e y w o r d _ ( s t r u c t _ d b _ c o d e _ s t a t e _ * , c o n s t c h a r * , i n t ) ; 00052 00053 e x t e r n i n t _ d b _ e x p l a i n _ ( s t r u c t _ d b _ c o d e _ s t a t e _ * c s , c h a r * b u f , s i z e _ t l e n ) ; 00054 00055 e x t e r n i n t _ d b _ e x p l a i n _ i n i t _ ( c h a r * b u f , s i z e _ t l e n ) ; 00056 00057 e x t e r n i n t _ d b _ i s _ p u s h e d _ ( v o i d ) ; 00058 00059 e x t e r n v o i d _ d b _ s e t j m p _ ( v o i d ) ; 00060 00061 e x t e r n v o i d _ d b _ l o n g j m p _ ( v o i d ) ; 00062 00063 e x t e r n v o i d _ d b _ p r o c e s s _ ( c o n s t c h a r * n a m e ) ; 00064 00065 e x t e r n v o i d _ d b _ p u s h _ ( c o n s t c h a r * c o n t r o l ) ; 00066 00067 e x t e r n v o i d _ d b _ p o p _ ( v o i d ) ; 00068 00069 e x t e r n v o i d _ d b _ s e t _ ( c o n s t c h a r * c o n t r o l ) ; 00070 00071 e x t e r n v o i d _ d b _ s e t _ i n i t _ ( c o n s t c h a r * c o n t r o l ) ; 00072 00073 e x t e r n v o i d _ d b _ e n t e r _ ( c o n s t c h a r * _ f u n c _ , c o n s t c h a r * _ f i l e _ , u i n t _ l i n e _ , 00074 00075 s t r u c t _ d b _ s t a c k _ f r a m e _ * _ s t a c k _ f r a m e _ ) ; 00076 00077 e x t e r n v o i d _ d b _ r e t u r n _ ( u i n t _ l i n e _ , s t r u c t _ d b _ s t a c k _ f r a m e _ * _ s t a c k _ f r a m e _ ) ; 00078 00079 e x t e r n v o i d _ d b _ p a r g s _ ( u i n t _ l i n e _ , c o n s t c h a r * k e y w o r d ) ; 00080 00081 e x t e r n v o i d _ d b _ d o p r n t _ _ V A R A R G S ( ( c o n s t c h a r * f o r m a t , . . . ) ) 00082 00083 A T T R I B U T E _ F O R M A T ( p r i n t f , 1 , 2 ) ; 00084 00085 e x t e r n v o i d _ d b _ d u m p _ ( u i n t _ l i n e _ , c o n s t c h a r * k e y w o r d , 00086 00087 c o n s t u n s i g n e d c h a r * m e m o r y , s i z e _ t l e n g t h ) ; 00088 00089 e x t e r n v o i d _ d b _ e n d _ ( v o i d ) ; 00090 00091 e x t e r n v o i d _ d b _ l o c k _ f i l e _ ( v o i d ) ; 00092 00093 e x t e r n v o i d _ d b _ u n l o c k _ f i l e _ ( v o i d ) ; 00094 00095 e x t e r n F I L E * _ d b _ f p _ ( v o i d ) ; 00096 00097 e x t e r n v o i d _ d b _ f l u s h _ ( ) ; 00098 00099 # d e f i n e D B U G _ E N T E R ( a ) s t r u c t _ d b _ s t a c k _ f r a m e _ _ d b _ s t a c k _ f r a m e _ ; \ 00100 00101 _ d b _ e n t e r _ ( a , _ _ F I L E _ _ , _ _ L I N E _ _ , & _ d b _ s t a c k _ f r a m e _ ) 00102 00103 # d e f i n e D B U G _ L E A V E _ d b _ r e t u r n _ ( _ _ L I N E _ _ , & _ d b _ s t a c k _ f r a m e _ ) 00104 00105 # d e f i n e D B U G _ R E T U R N ( a 1 ) d o { D B U G _ L E A V E ; r e t u r n ( a 1 ) ; } w h i l e ( 0 ) 00106 00107 # d e f i n e D B U G _ V O I D _ R E T U R N d o { D B U G _ L E A V E ; r e t u r n ; } w h i l e ( 0 ) 00108 00109 # d e f i n e D B U G _ E X E C U T E ( k e y w o r d , a 1 ) \ 00110 00111 d o { i f ( _ d b _ k e y w o r d _ ( 0 , ( k e y w o r d ) , 0 ) ) { a 1 } } w h i l e ( 0 ) 00112 00113 # d e f i n e D B U G _ E X E C U T E _ I F ( k e y w o r d , a 1 ) \ 00114 00115 d o { i f ( _ d b _ k e y w o r d _ ( 0 , ( k e y w o r d ) , 1 ) ) { a 1 } } w h i l e ( 0 ) 00116 00117 # d e f i n e D B U G _ E V A L U A T E ( k e y w o r d , a 1 , a 2 ) \ 00118 00119 ( _ d b _ k e y w o r d _ ( 0 , ( k e y w o r d ) , 0 ) ? ( a 1 ) : ( a 2 ) ) 00120 00121 # d e f i n e D B U G _ E V A L U A T E _ I F ( k e y w o r d , a 1 , a 2 ) \ 00122 00123 ( _ d b _ k e y w o r d _ ( 0 , ( k e y w o r d ) , 1 ) ? ( a 1 ) : ( a 2 ) ) 00124 00125 # d e f i n e D B U G _ P R I N T ( k e y w o r d , a r g l i s t ) \ 00126 00127 d o { _ d b _ p a r g s _ ( _ _ L I N E _ _ , k e y w o r d ) ; _ d b _ d o p r n t _ a r g l i s t ; } w h i l e ( 0 ) 00128 00129 # d e f i n e D B U G _ P U S H ( a 1 ) _ d b _ p u s h _ ( a 1 ) 00130 00131 # d e f i n e D B U G _ P O P ( ) _ d b _ p o p _ ( ) 00132 00133 # d e f i n e D B U G _ S E T ( a 1 ) _ d b _ s e t _ ( a 1 ) 00134 00135 # d e f i n e D B U G _ S E T _ I N I T I A L ( a 1 ) _ d b _ s e t _ i n i t _ ( a 1 ) 00136 00137 # d e f i n e D B U G _ P R O C E S S ( a 1 ) _ d b _ p r o c e s s _ ( a 1 ) 00138 00139 # d e f i n e D B U G _ F I L E _ d b _ f p _ ( ) 00140 00141 # d e f i n e D B U G _ S E T J M P ( a 1 ) ( _ d b _ s e t j m p _ ( ) , s e t j m p ( a 1 ) ) 00142 00143 # d e f i n e D B U G _ L O N G J M P ( a 1 , a 2 ) ( _ d b _ l o n g j m p _ ( ) , l o n g j m p ( a 1 , a 2 ) ) 00144 00145 # d e f i n e D B U G _ D U M P ( k e y w o r d , a 1 , a 2 ) _ d b _ d u m p _ ( _ _ L I N E _ _ , k e y w o r d , a 1 , a 2 ) 00146 00147 # d e f i n e D B U G _ E N D ( ) _ d b _ e n d _ ( ) 00148 00149 # d e f i n e D B U G _ L O C K _ F I L E _ d b _ l o c k _ f i l e _ ( ) 00150 00151 # d e f i n e D B U G _ U N L O C K _ F I L E _ d b _ u n l o c k _ f i l e _ ( ) 00152 00153 # d e f i n e D B U G _ A S S E R T ( A ) a s s e r t ( A ) 00154 00155 # d e f i n e D B U G _ E X P L A I N ( b u f , l e n ) _ d b _ e x p l a i n _ ( 0 , ( b u f ) , ( l e n ) ) 00156 00157 # d e f i n e D B U G _ E X P L A I N _ I N I T I A L ( b u f , l e n ) _ d b _ e x p l a i n _ i n i t _ ( ( b u f ) , ( l e n ) ) 00158 00159 # d e f i n e D E B U G G E R _ O F F d o { _ d b u g _ o n _ = 0 ; } w h i l e ( 0 ) 00160 00161 # d e f i n e D E B U G G E R _ O N d o { _ d b u g _ o n _ = 1 ; } w h i l e ( 0 ) 00162 00163 # d e f i n e I F _ D B U G ( A ) A 00164 00165 # i f n d e f _ _ W I N _ _ 00166 00167 # d e f i n e D B U G _ A B O R T ( ) ( _ d b _ f l u s h _ ( ) , a b o r t ( ) ) 00168 00169 # e l s e 00170 00171 / * 00172 00173 A v o i d p o p u p w i t h a b o r t / r e t r y / i g n o r e b u t t o n s . W h e n B U G # 3 1 7 4 5 i s f i x e d w e c a n 00174 00175 c a l l a b o r t ( ) i n s t e a d o f _ e x i t ( 3 ) ( n o w i t w o u l d c a u s e a " t e s t s i g n a l " p o p u p ) . 00176 00177 * / 00178 00179 # i n c l u d e < c r t d b g . h > 00180 00181 # d e f i n e D B U G _ A B O R T ( ) ( _ d b _ f l u s h _ ( ) , \ 00182 00183 ( v o i d ) _ C r t S e t R e p o r t M o d e ( _ C R T _ E R R O R , _ C R T D B G _ M O D E _ F I L E ) , \ 00184 00185 ( v o i d ) _ C r t S e t R e p o r t F i l e ( _ C R T _ E R R O R , _ C R T D B G _ F I L E _ S T D E R R ) , \ 00186 00187 _ e x i t ( 3 ) ) 00188 00189 # e n d i f 00190 00191 # e l s e / * N o d e b u g g e r * / 00192 00193 # d e f i n e D B U G _ E N T E R ( a 1 ) 00194 00195 # d e f i n e D B U G _ L E A V E 00196 00197 # d e f i n e D B U G _ R E T U R N ( a 1 ) d o { r e t u r n ( a 1 ) ; } w h i l e ( 0 ) 00198 00199 # d e f i n e D B U G _ V O I D _ R E T U R N d o { r e t u r n ; } w h i l e ( 0 ) 00200 00201 # d e f i n e D B U G _ E X E C U T E ( k e y w o r d , a 1 ) d o { } w h i l e ( 0 ) 00202 00203 # d e f i n e D B U G _ E X E C U T E _ I F ( k e y w o r d , a 1 ) d o { } w h i l e ( 0 ) 00204 00205 # d e f i n e D B U G _ E V A L U A T E ( k e y w o r d , a 1 , a 2 ) ( a 2 ) 00206 00207 # d e f i n e D B U G _ E V A L U A T E _ I F ( k e y w o r d , a 1 , a 2 ) ( a 2 ) 00208 00209 # d e f i n e D B U G _ P R I N T ( k e y w o r d , a r g l i s t ) d o { } w h i l e ( 0 ) 00210 00211 # d e f i n e D B U G _ P U S H ( a 1 ) d o { } w h i l e ( 0 ) 00212 00213 # d e f i n e D B U G _ S E T ( a 1 ) d o { } w h i l e ( 0 ) 00214 00215 # d e f i n e D B U G _ S E T _ I N I T I A L ( a 1 ) d o { } w h i l e ( 0 ) 00216 00217 # d e f i n e D B U G _ P O P ( ) d o { } w h i l e ( 0 ) 00218 00219 # d e f i n e D B U G _ P R O C E S S ( a 1 ) d o { } w h i l e ( 0 ) 00220 00221 # d e f i n e D B U G _ S E T J M P ( a 1 ) s e t j m p ( a 1 ) 00222 00223 # d e f i n e D B U G _ L O N G J M P ( a 1 ) l o n g j m p ( a 1 ) 00224 00225 # d e f i n e D B U G _ D U M P ( k e y w o r d , a 1 , a 2 ) d o { } w h i l e ( 0 ) 00226 00227 # d e f i n e D B U G _ E N D ( ) d o { } w h i l e ( 0 ) 00228 00229 # d e f i n e D B U G _ A S S E R T ( A ) d o { } w h i l e ( 0 ) 00230 00231 # d e f i n e D B U G _ L O C K _ F I L E d o { } w h i l e ( 0 ) 00232 00233 # d e f i n e D B U G _ F I L E ( s t d e r r ) 00234 00235 # d e f i n e D B U G _ U N L O C K _ F I L E d o { } w h i l e ( 0 ) 00236 00237 # d e f i n e D B U G _ E X P L A I N ( b u f , l e n ) 00238 00239 # d e f i n e D B U G _ E X P L A I N _ I N I T I A L ( b u f , l e n ) 00240 00241 # d e f i n e D E B U G G E R _ O F F d o { } w h i l e ( 0 ) 00242 00243 # d e f i n e D E B U G G E R _ O N d o { } w h i l e ( 0 ) 00244 00245 # d e f i n e I F _ D B U G ( A ) 00246 00247 # d e f i n e D B U G _ A B O R T ( ) a b o r t ( ) 00248 00249 # e n d i f 00250 00251 # i f d e f _ _ c p l u s p l u s 00252 00253 } 00254 00255 # e n d i f 00256 00257 # e n d i f 00258 00259