1
icylogic 2018-09-15 10:03:09 +08:00 via iPhone 1
valgrind cuda-memcheck nv profiler
|
2
dbow 2018-09-15 10:11:49 +08:00 3
用自己的内存函数 , 演示一下
void *my_malloc(size_t n) { auto p = malloc(n); log(p, n); return p; } void my_free(void *p ) { delete_from_log(p) free(p) } std::atexit =[]() { dump_log() } |
4
changnet 2018-09-15 11:32:31 +08:00 via Android
win 下有 visual leak detector,linux 下 valgrind,我自己是重写 new delete 然后计数,每次程序退出没释放时打个日志
|
5
nanlou 2018-09-15 11:42:49 +08:00
类似 sonarqube 之类的代码扫描工具也可以扫出一些内存相关的问题。另外 AddressSanitizer 之类的也可以了解一下。
|
6
yanaraika 2018-09-15 12:29:45 +08:00 2
gcc a.c -g -fsanitize=address,undefined 比 valgrind 快多了
|
7
yanaraika 2018-09-15 12:32:15 +08:00
或者简单点 glibc 的 mtrace
|
8
Machard OP |
9
zhuangzhuang1988 2018-09-15 12:38:47 +08:00
大 intel 的 https://software.intel.com/en-us/intel-inspector
可以检查资源(不仅仅是内存)和线程问题 |
12
FrankHB 2018-09-16 06:32:52 +08:00
valgrind DrMemory asan msan lsan ubsan
|
13
innoink 2018-09-19 08:32:34 +08:00 via Android
tcmalloc
|