#include "dbg_mem.h"
#include "rcs_prnt.hh"
#include "linklist.hh"
Include dependency graph for dbg_mem.cc:
Go to the source code of this file.
Data Structures | |
struct | DEBUG_MEM_ENTRY |
Functions | |
void | enable_debug_memory () |
void | disable_debug_memory () |
void | clear_dbg_mem_list () |
void | print_dbg_mem_list () |
void | add_dbg_mem_list (const char *file, int line, void *address, size_t sz) |
void | delete_dbg_mem_list (void *address) |
void * | debug_malloc (const char *file, int line, size_t s) |
void * | debug_calloc (const char *file, int line, size_t nelem, size_t elsize) |
void * | debug_realloc (const char *file, int line, void *ptr, size_t s) |
void | debug_free (void *ptr) |
Variables | |
RCS_LINKED_LIST * | dbg_mem_list = NULL |
int | log_debug_mem_list |
int | print_debug_mem_calls |
int | next_log_debug_id |
|
Definition at line 26 of file dbg_mem.cc. 00027 { 00028 log_debug_mem_list = 1; 00029 print_debug_mem_calls = 1; 00030 next_log_debug_id = 0; 00031 } |
|
Definition at line 34 of file dbg_mem.cc. 00035 { 00036 log_debug_mem_list = 0; 00037 print_debug_mem_calls = 0; 00038 next_log_debug_id = 0; 00039 } |
|
Definition at line 43 of file dbg_mem.cc. 00044 { 00045 log_debug_mem_list = 0; 00046 next_log_debug_id = 0; 00047 if (NULL != dbg_mem_list) 00048 { 00049 delete dbg_mem_list; 00050 dbg_mem_list = NULL; 00051 } 00052 } |
|
Definition at line 55 of file dbg_mem.cc. 00056 { 00057 if (NULL == dbg_mem_list) 00058 { 00059 rcs_print ("Debug memory list is NULL.\n"); 00060 return; 00061 } 00062 rcs_print ("\tAddress \tsize \tid \tFile \tline\n"); 00063 DEBUG_MEM_ENTRY *dbg_mem_entry = 00064 (DEBUG_MEM_ENTRY *) dbg_mem_list->get_head (); 00065 while (NULL != dbg_mem_entry) 00066 { 00067 rcs_print ("%p \t%d(0x%X) \t%d \t%s \t%d\n", dbg_mem_entry->address, 00068 dbg_mem_entry->size, dbg_mem_entry->size, dbg_mem_entry->id, 00069 dbg_mem_entry->file, dbg_mem_entry->line); 00070 dbg_mem_entry = (DEBUG_MEM_ENTRY *) dbg_mem_list->get_next (); 00071 } 00072 } |
|
Definition at line 75 of file dbg_mem.cc. Referenced by debug_calloc(), debug_malloc(), and debug_realloc().
00076 { 00077 DEBUG_MEM_ENTRY dbg_mem_entry; 00078 dbg_mem_entry.address = address; 00079 dbg_mem_entry.size = sz; 00080 dbg_mem_entry.file = file; 00081 dbg_mem_entry.line = line; 00082 dbg_mem_entry.id = next_log_debug_id++; 00083 log_debug_mem_list = 0; 00084 if (NULL == dbg_mem_list) 00085 { 00086 dbg_mem_list = new RCS_LINKED_LIST (); 00087 } 00088 dbg_mem_list->store_at_tail (&dbg_mem_entry, sizeof (DEBUG_MEM_ENTRY), 1); 00089 log_debug_mem_list = 1; 00090 } |
|
Definition at line 93 of file dbg_mem.cc. Referenced by debug_free(), and debug_realloc().
00094 { 00095 if (NULL != dbg_mem_list) 00096 { 00097 log_debug_mem_list = 0; 00098 DEBUG_MEM_ENTRY *dbg_mem_entry = 00099 (DEBUG_MEM_ENTRY *) dbg_mem_list->get_head (); 00100 while (NULL != dbg_mem_entry) 00101 { 00102 if (dbg_mem_entry->address == address) 00103 { 00104 dbg_mem_list->delete_current_node (); 00105 break; 00106 } 00107 dbg_mem_entry = (DEBUG_MEM_ENTRY *) dbg_mem_list->get_next (); 00108 } 00109 log_debug_mem_list = 1; 00110 } 00111 } |
|
Definition at line 115 of file dbg_mem.cc. 00116 { 00117 void *ret = malloc (s); 00118 if (log_debug_mem_list) 00119 { 00120 add_dbg_mem_list (file, line, ret, s); 00121 } 00122 if (print_debug_mem_calls) 00123 { 00124 rcs_print ("%p = malloc(%d)\n", ret, s); 00125 } 00126 return ret; 00127 } |
|
Definition at line 130 of file dbg_mem.cc. |
|
Definition at line 145 of file dbg_mem.cc. 00146 { 00147 void *orig_ptr = ptr; 00148 if (log_debug_mem_list) 00149 { 00150 delete_dbg_mem_list (orig_ptr); 00151 } 00152 void *new_ptr = NULL; 00153 new_ptr = realloc (ptr, s); 00154 if (log_debug_mem_list) 00155 { 00156 add_dbg_mem_list (file, line, new_ptr, s); 00157 } 00158 if (print_debug_mem_calls) 00159 { 00160 rcs_print ("%p = realloc(%p,%d)\n", new_ptr, orig_ptr, s); 00161 } 00162 return new_ptr; 00163 } |
|
Definition at line 166 of file dbg_mem.cc. 00167 { 00168 if (print_debug_mem_calls) 00169 { 00170 rcs_print ("free(%p)\n", ptr); 00171 } 00172 if (log_debug_mem_list) 00173 { 00174 delete_dbg_mem_list (ptr); 00175 } 00176 if (NULL != ptr) 00177 { 00178 free (ptr); 00179 } 00180 } |
|
Definition at line 7 of file dbg_mem.cc. |
|
Definition at line 9 of file dbg_mem.cc. |
|
Definition at line 10 of file dbg_mem.cc. |
|
Definition at line 11 of file dbg_mem.cc. |