在gcc有方便的发现代码中内存泄漏问题,只要添加编译选项 -fsanitize=address
,指定 -fsanitize=address
开关,在Shell命令行执行如下命令:
gcc -fsanitize=address main.c -o Program.out
添加这个编译时选项后,编译过程中启动内存错误检测工具AddressSanitizer(ASan)它可以:
- 在运行时检测各种内存错误,如果使用未初始化的内存、使用已释放的内存、内存泄漏等。
- 提供详细的错误信息,帮助开发者快速定义问题。
- 与各种编译器和操作系统兼容。