Не получается правильно проверить утечку памяти при помощи valgrind

Я недавно перешёл с С на С++. После того как написал первую программу решил проверить утечку памяти при помощи valgrind и получил ошибку которая указывает на непонятные файлы. На С все работает нормально, я запускаю программу, могу выполнить все действия такие как удаление и добавление в дин. массив, а на С++ вылетает ошибка которая не позволяет даже вывести выбор операций на экран. Подскажите как это можно исправить.

Мой мейк файл

#MAC_OPTS=-isystem /opt/homebrew/include -I/opt/homebrew/include -L/opt/homebrew/lib
#ARCH = -arch arm64

CC = $(CLANG_PREFIX)clang++
LAB_OPTS = -I./src src/Arr_Student.cpp src/Student.cpp
TEST_OPTS = -I./test test/test_Arr_Student.cpp test/test_Student.cpp

DOCG = doxygen
DOC = Doxyfile

C_OPTS = $(MAC_OPTS) -fsanitize=address -std=c++14 -gdwarf-4 -Wall -Wextra -Werror -Wformat-security -Wfloat-equal -Wshadow -Wconversion -Wlogical-not-parentheses -Wnull-dereference -Wno-unused-variable -Werror=vla $(LAB_OPTS)

V_FLAGS = --tool=memcheck --leak-check=full --show-reachable=yes \
    --undef-value-errors=yes --track-origins=no --child-silent-after-fork=no \
    --trace-children=no --error-exitcode=1
V_LAGS = valgrind

#-------------------------------------------------------------#
                             #(basic)#
                             
main_all: clean prep compile
    ./dist/main.bin ./assets/input.txt dist/text.txt

test_all: clean prep test.bin test

doxygen: clean_doxy Doxygen

#-------------------------------------------------------------#
                             #(lead-up)#
                             
clean:
    rm -rf dist

clean_doxy:
    rm -rf ./dist/html
    rm -rf ./dist/latex 
prep:
    mkdir dist

#-------------------------------------------------------------#
                             #(main)#
compile: main.bin

main.bin: src/main.cpp
    $(CC) $(C_OPTS) $< -o ./dist/$@
    
check:
    clang-format --verbose -dry-run --Werror src/*
    clang-tidy src/*.c  -checks=-readability-uppercase-literal-suffix,-readability-magic-numbers,-clang-analyzer-deadcode.DeadStores,-clang-analyzer-security.insecureAPI.rand
    rm -rf src/*.dump

#-------------------------------------------------------------#
                             #(doxygen)#
                             
Doxygen:
    $(DOCG) $(DOC)
    
#-------------------------------------------------------------#
                             #(test)#
                             
test_all: clean prep test.bin test

test.bin:
     $(CC) $(C_OPTS) $(TEST_OPTS) $< $(ARCH) -fprofile-instr-generate -fcoverage-mapping -o ./dist/$@ -lgtest -lgtest_main
test: dist
    LLVM_PROFILE_FILE="dist/test.profraw" ./dist/test.bin
    llvm-profdata merge -sparse dist/test.profraw -o dist/test.profdata
    llvm-cov report dist/test.bin -instr-profile=dist/test.profdata src/*.cpp
    llvm-cov show dist/test.bin -instr-profile=dist/test.profdata src/*.cpp --format html > dist/coverage.html

#-------------------------------------------------------------#
                             #(code-coverage)#

leak-check_main1:clean prep main.bin
    $(V_LAGS) $(V_FLAGS) --log-file=dist/valgrind_main.log  ./dist/main.bin 
#-------------------------------------------------------------#

Файл которые получается на выходе

==5399== Memcheck, a memory error detector
==5399== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==5399== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==5399== Command: ./dist/main.bin
==5399== Parent PID: 5379
==5399== 
==5399== 
==5399== Process terminating with default action of signal 11 (SIGSEGV)
==5399==  General Protection Fault
==5399==    at 0x4C0C902: __pthread_once_slow (pthread_once.c:114)
==5399==    by 0x4CC661A: __rpc_thread_variables (rpc_thread.c:59)
==5399==    by 0x4D16FF8: free_mem (in /usr/lib/x86_64-linux-gnu/libc.so.6)
==5399==    by 0x4D16B89: __libc_freeres (in /usr/lib/x86_64-linux-gnu/libc.so.6)
==5399==    by 0x483A13E: _vgnU_freeres (vg_preloaded.c:74)
==5399==    by 0x2D2987: ???
==5399==    by 0x1D0573: __sanitizer::Die() (in /home/vlad/Documents/1cours/lab17/dist/main.bin)
==5399==    by 0x1B8261: __asan::InitializeShadowMemory() (in /home/vlad/Documents/1cours/lab17/dist/main.bin)
==5399==    by 0x1B77E0: __asan::AsanInitInternal() (in /home/vlad/Documents/1cours/lab17/dist/main.bin)
==5399==    by 0x4005E25: _dl_init (dl-init.c:102)
==5399==    by 0x401C989: ??? (in /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2)
==5399== 
==5399== HEAP SUMMARY:
==5399==     in use at exit: 0 bytes in 0 blocks
==5399==   total heap usage: 30 allocs, 30 frees, 1,123 bytes allocated
==5399== 
==5399== All heap blocks were freed -- no leaks are possible
==5399== 
==5399== For lists of detected and suppressed errors, rerun with: -s
==5399== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Внимание!!! Хоть здесь и написано что утечек нет, но повторю что в программе заложен алгоритм с меню выбора операции(1.добавить в дин. массив элемент 2. удалить элемент), выбор этих операций не предоставляется.

Ошибка которая выведенная в консоли

==4656==Shadow memory range interleaves with an existing memory mapping. ASan cannot proceed correctly. ABORTING.
==4656==ASan shadow was supposed to be located in the [0x00007fff7000-0x10007fff7fff] range.
==4656==This might be related to ELF_ET_DYN_BASE change in Linux 4.12.
==4656==See https://github.com/google/sanitizers/issues/856 for possible workarounds.
==4656==Process memory map follows:
        0x000000108000-0x00000012b000   /home/vlad/Documents/1cours/lab17/dist/main.bin
        0x00000012b000-0x0000001f6000   /home/vlad/Documents/1cours/lab17/dist/main.bin
        0x0000001f6000-0x00000022b000   /home/vlad/Documents/1cours/lab17/dist/main.bin
        0x00000022b000-0x00000022c000   /home/vlad/Documents/1cours/lab17/dist/main.bin
        0x00000022c000-0x000000230000   /home/vlad/Documents/1cours/lab17/dist/main.bin
        0x000000230000-0x000000c04000
        0x000004000000-0x000004002000   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
        0x000004002000-0x000004028000   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
        0x000004028000-0x000004033000   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
        0x000004033000-0x000004035000   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
        0x000004035000-0x000004037000   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
        0x000004037000-0x000004038000
        0x000004837000-0x000004839000
        0x000004839000-0x00000483a000   /usr/libexec/valgrind/vgpreload_core-amd64-linux.so
        0x00000483a000-0x00000483b000   /usr/libexec/valgrind/vgpreload_core-amd64-linux.so
        0x00000483b000-0x00000483c000   /usr/libexec/valgrind/vgpreload_core-amd64-linux.so
        0x00000483c000-0x00000483d000   /usr/libexec/valgrind/vgpreload_core-amd64-linux.so
        0x00000483d000-0x00000483e000   /usr/libexec/valgrind/vgpreload_core-amd64-linux.so
        0x00000483e000-0x000004843000   /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so
        0x000004843000-0x00000484f000   /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so
        0x00000484f000-0x000004852000   /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so
        0x000004852000-0x000004853000   /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so
        0x000004853000-0x000004854000   /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so
        0x000004854000-0x000004860000
        0x000004867000-0x000004900000   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
        0x000004900000-0x000004a01000   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
        0x000004a01000-0x000004a70000   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
        0x000004a70000-0x000004a7b000   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
        0x000004a7b000-0x000004a7e000   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
        0x000004a7e000-0x000004a81000
        0x000004a81000-0x000004a8f000   /usr/lib/x86_64-linux-gnu/libm.so.6
        0x000004a8f000-0x000004b01000   /usr/lib/x86_64-linux-gnu/libm.so.6
        0x000004b01000-0x000004b5e000   /usr/lib/x86_64-linux-gnu/libm.so.6
        0x000004b5e000-0x000004b5f000   /usr/lib/x86_64-linux-gnu/libm.so.6
        0x000004b5f000-0x000004b60000   /usr/lib/x86_64-linux-gnu/libm.so.6
        0x000004b60000-0x000004b63000   /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
        0x000004b63000-0x000004b7a000   /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
        0x000004b7a000-0x000004b7e000   /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
        0x000004b7e000-0x000004b7f000   /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
        0x000004b7f000-0x000004b80000   /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
        0x000004b80000-0x000004ba8000   /usr/lib/x86_64-linux-gnu/libc.so.6
        0x000004ba8000-0x000004d18000   /usr/lib/x86_64-linux-gnu/libc.so.6
        0x000004d18000-0x000004d70000   /usr/lib/x86_64-linux-gnu/libc.so.6
        0x000004d70000-0x000004d74000   /usr/lib/x86_64-linux-gnu/libc.so.6
        0x000004d74000-0x000004d76000   /usr/lib/x86_64-linux-gnu/libc.so.6
        0x000004d76000-0x000005116000
        0x000005116000-0x000005516000
        0x000005516000-0x000005526000
        0x000058000000-0x000058001000   /usr/libexec/valgrind/memcheck-amd64-linux
        0x000058001000-0x0000581d4000   /usr/libexec/valgrind/memcheck-amd64-linux
        0x0000581d4000-0x000058279000   /usr/libexec/valgrind/memcheck-amd64-linux
        0x000058279000-0x00005827f000   /usr/libexec/valgrind/memcheck-amd64-linux
        0x00005827f000-0x000059c8b000
        0x001002001000-0x001002cb8000
        0x001002cb8000-0x001002cba000
        0x001002cba000-0x001002dba000
        0x001002dba000-0x001002dbc000
        0x001002dbc000-0x001002dbd000   /tmp/vgdb-pipe-shared-mem-vgdb-4656-by-vlad-on-???
        0x001002dbd000-0x001002f53000
        0x001002fb9000-0x001003693000
        0x0010036a2000-0x001003a26000
        0x001003a97000-0x001005b67000
        0x0010062cb000-0x0010065cb000
        0x0010066c0000-0x00100693b000
        0x001ffeffe000-0x001fff001000
        0x7ffd51667000-0x7ffd51688000   [stack]
        0x7ffd51751000-0x7ffd51755000   [vvar]
==4656==End of process memory map.
make: *** [Makefile:75: leak-check_main1] Error 1


Ответы (0 шт):