📄 dbg_heap_record.cpp
字号:
class memory_record{ friend class dbg_heap_record_list; memory_record(void *p, memory_record *next, size_t line, const char *file, size_t id, size_t size) :m_pointer(p),m_next(next),m_line(line),m_id(id),m_size(size) { strncpy(m_file, file, 255); } void *m_pointer; memory_record *m_next; size_t m_line; size_t m_id; size_t m_size; char m_file[256];};dbg_heap_record_list* dbg_heap_record_list::instance(){ static dbg_heap_record_list inst; return &inst;}void dbg_heap_record_list::record(void *p, const size_t line, const size_t size, const char *file){ int begin_pos = (*file == '/' ? 30 : 0); memory_record *r = new memory_record(p, m_head, line, file + begin_pos, ++m_id, size); m_head = r;}void dbg_heap_record_list::remove(void *p){ memory_record *cur = m_head; memory_record *prev = 0; while(cur) { if(cur->m_pointer == p) { if(prev) { prev->m_next = cur->m_next; } else { m_head = cur->m_next; } delete cur; break; } prev = cur; cur = cur->m_next; }}void dbg_heap_record_list::dump(){ for(memory_record *cur = m_head; cur; cur = cur->m_next) { printf("\n(%4d)[%5d] %s:%d", cur->m_id, cur->m_size, cur->m_file, cur->m_line); } printf("\n");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -