标签:des style blog color os io cti div
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 /* Function prototypes with attributes */ 5 void main_constructor( void ) 6 __attribute__ ((no_instrument_function, constructor)); 7 8 void main_destructor( void ) 9 __attribute__ ((no_instrument_function, destructor)); 10 11 void __cyg_profile_func_enter( void *, void * ) 12 __attribute__ ((no_instrument_function)); 13 14 void __cyg_profile_func_exit( void *, void * ) 15 __attribute__ ((no_instrument_function)); 16 17 18 static FILE *fp; 19 20 21 void main_constructor( void ) 22 { 23 fp = fopen( "trace.txt", "w" ); 24 if (fp == NULL) exit(-1); 25 } 26 27 28 void main_destructor( void ) 29 { 30 fclose( fp ); 31 } 32 33 34 void __cyg_profile_func_enter( void *this, void *callsite ) 35 { 36 fprintf(fp, "E%p\n", (int *)this); 37 } 38 39 40 void __cyg_profile_func_exit( void *this, void *callsite ) 41 { 42 fprintf(fp, "X%p\n", (int *)this); 43 }
constructor、destructor作用于main方法,即程序开始与退出时。
enter、exit作用于每个方法,在每个方法执行与退出时被调用。
标签:des style blog color os io cti div
原文地址:http://www.cnblogs.com/aldin/p/3924244.html