为什么这不起作用?:
prog.c文件
#include <stdio.h>
int main(void)
{
int i, j;
printf("\n%d\n%d\n", i, j);
return 0;
}
调试文件:
#!/bin/bash
g++ -Wall -Wextra -Wpedantic -O0 -g3 -fsanitize=address -o temp/debug.out src/prog.c
./temp/debug.out
运行:
./debug
prog.c: In function ‘main’:
prog.c:6:9: warning: ‘i’ is used uninitialized in this function [-Wuninitialized]
printf("\n%d\n%d\n", i, j);
^~~~~~~~~~~~~~~~~~~~~~~~~~
prog.c:6:9: warning: ‘j’ is used uninitialized in this function [-Wuninitialized]
0
0
==90==LeakSanitizer has encountered a fatal error
==90==HINT: For debugging, try setting environment variable LSAN_OPTION=verbosity=1:log_threads=1
==90==LeakSanitizer does not work under ptrace (strace, gdb, etc)
我是使用调试工具的新手,但是关于编译器的手册页,关于该主题的知识并不多。那请有人帮我吗?
这是在新打开的终端上的Linux(Ubuntu)Windows 10子系统上执行的。
我想使用在-fno-sanitize=all
的手册页中找到的gcc
选项,但是对于我想到的任何错误,它似乎都一言不发。
答案 0 :(得分:0)
我发现这是我使用的WSL的问题(我认为说一个我使用WSL并不重要)
原来我需要写LSAN_OPTION=verbosity=1:log_threads=1; g++ -Wall...