以下程序在空指针解除引用时崩溃:
#include <stdlib.h>
char *p;
int main(void) {
p = malloc(42);
p = NULL;
*p = 0;
return 0;
}
当使用Valgrind执行时,仍会报告内存泄漏(尽管崩溃)。但是,当使用-fsanitize = leak编译程序时使用Leak Sanitizer时,程序崩溃并且泄漏未被报告。
当程序崩溃时,有没有办法从Leak Sanitizer获取报告?