Как получить номера строк с выходом AddressSanitizer?

Как я могу получить нумерацию строк при запуске дезинфицирующего средства адресов на gcc?

У меня есть простая программа для проверки сантайзера адресов (переполнения буфера):

#include<stdio.h>


int main(void)
{
    int A[10] = {0};
    A[10] = 1;

}

при запуске дезинфицирующего средства адресов (gcc):

gcc b_oflow.c -fsanitize=address -g 
==7961==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fff90e56898 at pc 0x564401bc42be bp 0x7fff90e56840 sp 0x7fff90e56838
WRITE of size 4 at 0x7fff90e56898 thread T0
    #0 0x564401bc42bd in main (/home/victor/Documents/code/C/lisp/src/a.out+0x12bd)
    #1 0x7fbeb1a7009a in __libc_start_main ../csu/libc-start.c:308
    #2 0x564401bc40b9 in _start (/home/victor/Documents/code/C/lisp/src/a.out+0x10b9)

Address 0x7fff90e56898 is located in stack of thread T0 at offset 72 in frame
    #0 0x564401bc4184 in main (/home/victor/Documents/code/C/lisp/src/a.out+0x1184)

Как я могу вывести нумерацию строк? Я пробовал ответы на вопросы: Как получить номера строк в выводе отладки с помощью clang's -fsanitize=address? и Как мне получить номера строк в выводе отладки с помощью clang's -fsanitize=address? но не знаю, что делать сделать, я хотел напечатать строку, в которой произошло переполнение при запуске исполняемого файла.


person victor 0x3E7    schedule 26.07.2021    source источник
comment
Обычно добавляют параметр -g как к компиляции в объектный файл, так и к процессу компоновки.   -  person Jonathan Leffler    schedule 26.07.2021
comment
Я попробовал с -g сейчас и продолжает печатать адрес, но не нумерацию строк.   -  person victor 0x3E7    schedule 26.07.2021
comment
Какую версию GCC вы используете?   -  person Some programmer dude    schedule 26.07.2021
comment
gcc (Дебиан 8.3.0-6) 8.3.0   -  person victor 0x3E7    schedule 26.07.2021
comment
Я не могу воспроизвести вашу проблему в проводнике компилятора. Даже без опции -g я получаю номера строк. Только если я добавлю параметр -g0 (чтобы явно отключить всю отладочную информацию), я не получу его. Опция -g действительно должна гарантировать, что вы получите номер строки.   -  person Some programmer dude    schedule 26.07.2021
comment
Я не могу воспроизвести. Я скопировал файл и команду как есть, и это сработало. ../csu/libc-start.c:308 - Используете ли вы LD_PRELOAD? Или указать пользовательскую конфигурацию с пользовательским запуском? Ваш компилятор должен быть связан с libc.so.6. Пожалуйста, опубликуйте вывод gcc -v ..... Попробуйте скомпилировать и запустить в новой свежей оболочке. Пожалуйста, попробуйте скомпилировать с env -i PATH=$PATH gcc ..., а затем запустить с env -i ./a.out??   -  person KamilCuk    schedule 26.07.2021
comment
используя gcc -v, я получаю: pastebin.com/BHJGhWZA, но, используя ваши параметры, я по-прежнему не получаю номера строк, только адреса.   -  person victor 0x3E7    schedule 26.07.2021