# memory_analysis **Repository Path**: blackvirus/memory_analysis ## Basic Information - **Project Name**: memory_analysis - **Description**: 程序堆内存分析工具,程序中申请后未释放的内存可以统计出来 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-08-16 - **Last Updated**: 2024-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介: 程序堆内存分析工具,程序中申请后未释放的内存可以统计出来 ## 用法: + 注释掉业务代码中对signal 10(SIGUSR1)的注册 + 使用LD_PRELOAD启动程序,如LD_PRELOAD=./liballoc_hook.so ./example ## heap_parse使用方法: + `heap_parse [addr2line] [elf_file] [heap_file] [lib_dir]` 如: + `./heap_parse /usr/bin/addr2line example /tmp/heap_data_1 /usr/lib/x86_64-linux-gnu` ## Output: ``` alloc hook version 0 heap total memory: 0 kB, alloc_hook use 5625 kB example 0 kB 0x55c21dd29770 0 kB 71.42% (example) # 1 ?? ??:0 # 2 0x7fab3463cc87 /lib/x86_64-linux-gnu/libc-2.27.so # 3 ?? ??:0 0x55c21dd29940 0 kB 5.71% (example) # 1 ?? ??:0 # 2 0x7fab3463cc87 /lib/x86_64-linux-gnu/libc-2.27.so # 3 ?? ??:0 0x55c21dd28f30 0 kB 1.42% (example) # 1 ?? ??:0 # 2 0x7fab3463cc87 /lib/x86_64-linux-gnu/libc-2.27.so # 3 ?? ??:0 mmap total size: 4 kB 0x55c21cef4000-0x55c21cef6000 r-xp RSS: 101 kB example 0x55c21d0f5000-0x55c21d0f6000 r--p RSS: 101 kB example 0x55c21d0f6000-0x55c21d0f7000 rw-p RSS: 101 kB example 0x7fab34fad000-0x7fab34fb4000 r-xp RSS: 1751081839 kB liballoc_hook.so 0x7fab34fb4000-0x7fab351b4000 ---p RSS: 1751081839 kB liballoc_hook.so 0x7fab351b4000-0x7fab351b5000 r--p RSS: 1751081839 kB liballoc_hook.so 0x7fab351b5000-0x7fab351b6000 rw-p RSS: 1751081839 kB liballoc_hook.so total RSS 2709360363kB, lib RSS 2709360060 kB, text RSS 101 kB ``` ## Enable static check? + Add `-DENABLE_STATIC_CHECK=ON` to open the cpp static check. + Add ` -DCMAKE_EXPORT_COMPILE_COMMANDS=ON` to open cmake commands support. + `cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DENABLE_STATIC_CHECK=ON ..`