-void report_mem_leak() {
- SYNCHRONIZE(synchronized);
- struct MemoryLeak *leak_info;
- FILE *fp_write = fopen(OUTPUT_FILE, "wt");
- char info[1024];
-
- if(fp_write != NULL) {
- sprintf(info, "%s\n", "Memory Leak Summary");
- fwrite(info, (strlen(info)) , 1, fp_write);
- sprintf(info, "%s\n", "-----------------------------------");
- fwrite(info, (strlen(info)) , 1, fp_write);
-
- for(leak_info = ptr_start; leak_info != NULL; leak_info = leak_info->next) {
- sprintf(info, "address : %p\n", leak_info->mem_info.address);
- fwrite(info, (strlen(info)) , 1, fp_write);
- sprintf(info, "size : %d bytes\n", leak_info->mem_info.size);
- fwrite(info, (strlen(info)) , 1, fp_write);
- sprintf(info, "file : %s\n", leak_info->mem_info.file_name);
- fwrite(info, (strlen(info)) , 1, fp_write);
- sprintf(info, "line : %d\n", leak_info->mem_info.line);
- fwrite(info, (strlen(info)) , 1, fp_write);
- sprintf(info, "%s\n", "-----------------------------------");
- fwrite(info, (strlen(info)) , 1, fp_write);
- }
- }
- fclose(fp_write);
- DESYNCHRONIZE(synchronized);
-}
-