Как использовать дезинфицирующие средства GCC - PullRequest
0 голосов
/ 03 декабря 2018

Почему это не работает?:

файл 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)

Я новичок в использовании средств отладки, но по этой теме читать особо нечего, кроме man-страниц компиляторов.Так, пожалуйста, может кто-нибудь помочь мне?

Это было выполнено в подсистеме Windows 10 для Linux (Ubuntu) на недавно открытом терминале.

Я хотел бы использовать опцию -fno-sanitize=all, которую я нашел в manстраницы gcc но, похоже, ни слова не сказано о какой-либо ошибке, с которой я столкнулся.

1 Ответ

0 голосов
/ 02 января 2019

Я обнаружил, что это была проблема с WSL, который я использовал (я не думал, что важно сказать, что я использую один)

Оказывается, мне нужно написать LSAN_OPTION=verbosity=1:log_threads=1; g++ -Wall...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...