@@ -91,6 +91,7 @@ ITT_EXTERN_C void ITTAPI __itt_api_init(__itt_global* p, __itt_group_id init_gro
9191{
9292 if (p != NULL )
9393 {
94+ (void )init_groups ;
9495 fill_func_ptr_per_lib (p );
9596 ref_col_init ();
9697 }
@@ -138,47 +139,50 @@ void log_func_call(uint8_t log_level, const char* function_name, const char* mes
138139/* This implementation is designed to log ITTAPI functions calls.*/
139140/* ------------------------------------------------------------------------------ */
140141
142+ /* Please remember to call free() after using get_metadata_elements() */
141143char * get_metadata_elements (size_t size , __itt_metadata_type type , void * metadata )
142144{
143145 char * metadata_str = malloc (sizeof (char ) * LOG_BUFFER_MAX_SIZE );
144146 * metadata_str = '\0' ;
147+ uint16_t offset = 0 ;
145148
146149 switch (type )
147150 {
148151 case __itt_metadata_u64 :
149152 for (uint16_t i = 0 ; i < size ; i ++ )
150- sprintf (metadata_str , "%s%llu;" , metadata_str , ((uint64_t * )metadata )[i ]);
153+ offset += sprintf (metadata_str + offset , "%lu;" , ((uint64_t * )metadata )[i ]);
151154 break ;
152155 case __itt_metadata_s64 :
153156 for (uint16_t i = 0 ; i < size ; i ++ )
154- sprintf (metadata_str , "%s%lld;" , metadata_str , ((int64_t * )metadata )[i ]);
157+ offset += sprintf (metadata_str + offset , "%ld;" , ((int64_t * )metadata )[i ]);
155158 break ;
156159 case __itt_metadata_u32 :
157160 for (uint16_t i = 0 ; i < size ; i ++ )
158- sprintf (metadata_str , "%s%lu;" , metadata_str , ((uint32_t * )metadata )[i ]);
161+ offset += sprintf (metadata_str + offset , "%u;" , ((uint32_t * )metadata )[i ]);
159162 break ;
160163 case __itt_metadata_s32 :
161164 for (uint16_t i = 0 ; i < size ; i ++ )
162- sprintf (metadata_str , "%s%ld;" , metadata_str , ((int32_t * )metadata )[i ]);
165+ offset += sprintf (metadata_str + offset , "%d;" , ((int32_t * )metadata )[i ]);
163166 break ;
164167 case __itt_metadata_u16 :
165168 for (uint16_t i = 0 ; i < size ; i ++ )
166- sprintf (metadata_str , "%s% u;" , metadata_str , ((uint16_t * )metadata )[i ]);
169+ offset += sprintf (metadata_str + offset , "%u;" , ((uint16_t * )metadata )[i ]);
167170 break ;
168171 case __itt_metadata_s16 :
169172 for (uint16_t i = 0 ; i < size ; i ++ )
170- sprintf (metadata_str , "%s% d;" , metadata_str , ((int16_t * )metadata )[i ]);
173+ offset += sprintf (metadata_str + offset , "%d;" , ((int16_t * )metadata )[i ]);
171174 break ;
172175 case __itt_metadata_float :
173176 for (uint16_t i = 0 ; i < size ; i ++ )
174- sprintf (metadata_str , "%s% f;" , metadata_str , ((float * )metadata )[i ]);
177+ offset += sprintf (metadata_str + offset , "%f;" , ((float * )metadata )[i ]);
175178 break ;
176179 case __itt_metadata_double :
177180 for (uint16_t i = 0 ; i < size ; i ++ )
178- sprintf (metadata_str , "%s% lf;" , metadata_str , ((double * )metadata )[i ]);
181+ offset += sprintf (metadata_str + offset , "%lf;" , ((double * )metadata )[i ]);
179182 break ;
180183 default :
181- printf ("ERROR: Unknow metadata type\n" );
184+ printf ("ERROR: Unknow metadata type\n" );
185+ break ;
182186 }
183187
184188 return metadata_str ;
@@ -213,6 +217,7 @@ ITT_EXTERN_C void ITTAPI __itt_frame_begin_v3(const __itt_domain *domain, __itt_
213217{
214218 if (domain != NULL )
215219 {
220+ (void )id ;
216221 LOG_FUNC_CALL_INFO ("functions args: domain=%s" , domain -> nameA );
217222 }
218223 else
@@ -225,6 +230,7 @@ ITT_EXTERN_C void ITTAPI __itt_frame_end_v3(const __itt_domain *domain, __itt_id
225230{
226231 if (domain != NULL )
227232 {
233+ (void )id ;
228234 LOG_FUNC_CALL_INFO ("functions args: domain=%s" , domain -> nameA );
229235 }
230236 else
@@ -252,6 +258,8 @@ ITT_EXTERN_C void ITTAPI __itt_task_begin(
252258{
253259 if (domain != NULL && name != NULL )
254260 {
261+ (void )taskid ;
262+ (void )parentid ;
255263 LOG_FUNC_CALL_INFO ("functions args: domain=%s handle=%s" , domain -> nameA , name -> strA );
256264 }
257265 else
@@ -277,8 +285,12 @@ ITT_EXTERN_C void __itt_metadata_add(const __itt_domain *domain, __itt_id id,
277285{
278286 if (domain != NULL && count != 0 )
279287 {
288+ (void )id ;
289+ (void )key ;
290+ char * metadata_str = get_metadata_elements (count , type , data );
280291 LOG_FUNC_CALL_INFO ("functions args: domain=%s metadata_size=%lu metadata[]=%s" ,
281- domain -> nameA , count , get_metadata_elements (count , type , data ));
292+ domain -> nameA , count , metadata_str );
293+ free (metadata_str );
282294 }
283295 else
284296 {
@@ -300,16 +312,19 @@ ITT_EXTERN_C void __itt_histogram_submit(__itt_histogram* hist, size_t length, v
300312 {
301313 if (x_data != NULL )
302314 {
315+ char * x_data_str = get_metadata_elements (length , hist -> x_type , x_data );
316+ char * y_data_str = get_metadata_elements (length , hist -> y_type , y_data );
303317 LOG_FUNC_CALL_INFO ("functions args: domain=%s name=%s histogram_size=%lu x[]=%s y[]=%s" ,
304- hist -> domain -> nameA , hist -> nameA , length ,
305- get_metadata_elements ( length , hist -> x_type , x_data ),
306- get_metadata_elements ( length , hist -> y_type , y_data ) );
318+ hist -> domain -> nameA , hist -> nameA , length , x_data_str , y_data_str );
319+ free ( x_data_str );
320+ free ( y_data_str );
307321 }
308322 else
309323 {
324+ char * y_data_str = get_metadata_elements (length , hist -> y_type , y_data );
310325 LOG_FUNC_CALL_INFO ("functions args: domain=%s name=%s histogram_size=%lu y[]=%s" ,
311- hist -> domain -> nameA , hist -> nameA , length ,
312- get_metadata_elements ( length , hist -> y_type , y_data ) );
326+ hist -> domain -> nameA , hist -> nameA , length , y_data_str );
327+ free ( y_data_str );
313328 }
314329 }
315330 else
0 commit comments