![]() | 1 icylogic 2018-09-15 10:03:09 +08:00 via iPhone ![]() valgrind cuda-memcheck nv profiler |
2 dbow 2018-09-15 10:11:49 +08:00 ![]() 用自己的内存函数 , 演示一下 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 ![]() 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 |