Я использую clang++ 8.0.0-3~ubuntu18.04.2
в Ubuntu 18.04 с valgrind-3.13.0
(последняя версия в Ubuntu?)
Проблема в том, что Valgrind не показывает
==28708== 32 bytes in 1 blocks are still reachable in loss record 1 of 1
==28708== at 0x4C31B25: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==28708== by 0x598B7E4: _dlerror_run (dlerror.c:140)
==28708== by 0x598B165: dlsym (dlsym.c:70)
==28708== by 0x4F4784: __interception::GetRealFunctionAddress(char const*, unsigned long*, unsigned long, unsigned long) (in /mnt/DATEN/Consti/Documents/Studium/Uebungen/02_SS20/Objektorientierte Programmierung/assignment_5828/game)
==28708== by 0x4CE5F3: __asan::InitializeAsanInterceptors() (in /mnt/DATEN/Consti/Documents/Studium/Uebungen/02_SS20/Objektorientierte Programmierung/assignment_5828/game)
==28708== by 0x4F0583: __asan::AsanInitInternal() [clone .part.0] (in /mnt/DATEN/Consti/Documents/Studium/Uebungen/02_SS20/Objektorientierte Programmierung/assignment_5828/game)
==28708== by 0x4010805: _dl_init (dl-init.c:104)
==28708== by 0x40010C9: ??? (in /lib/x86_64-linux-gnu/ld-2.27.so)
==28708== by 0x1: ???
==28708== by 0x1FFEFFF50E: ???
==28708== by 0x1FFEFFF515: ???
, скомпилированных с использованием этот Makefile:
SUBMISSION = game
BUILDDIR = build
EXECUTABLE = $(SUBMISSION)
SOURCES = $(wildcard *.cpp)
OBJECTS = $(patsubst %,$(BUILDDIR)/%,${SOURCES:.cpp=.o})
CXX = clang++
ASANFLAGS = -fsanitize=address,undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls
WARNINGS = -Wall -Wextra -pedantic -ansi -Wno-unused-parameter -Wpedantic \
-Wfloat-equal -Wshadow -Wsign-conversion \
-Wsign-compare -Wpointer-arith -Wdeprecated
ERRORS = -Werror=old-style-cast -Werror=non-virtual-dtor \
-Werror=array-bounds -Werror=uninitialized \
-Werror=format -Werror=format-nonliteral -Werror=float-equal \
-Werror=delete-non-virtual-dtor -Werror=return-type
CXXFLAGS = $(WARNINGS) $(ERRORS) $(ASANFLAGS) -g -c -std=c++17 -fsanitize=address -o
LDFLAGS = $(ASANFLAGS)
LDLIBS =
#-------------------------------------------------------------------------------
#make executable
all: builddir $(EXECUTABLE)
builddir:
mkdir -p $(BUILDDIR)
$(BUILDDIR)/%.o: %.cpp
@echo [CXX] $<
@$(CXX) $(CXXFLAGS) $@ $< -MMD -MF ./$@.d
#link Objects
$(EXECUTABLE) : $(OBJECTS)
@echo [LD] $@
@$(CXX) -o $@ $^ $(LDFLAGS)
#make clean
clean:
rm -f ./*.o
rm -f ./*.o.d
rm -f ./*.bin
rm -rf ./$(BUILDDIR)
rm -f $(EXECUTABLE)
run: builddir $(EXECUTABLE)
./$(EXECUTABLE) config/config01.json
bonus: builddir $(EXECUTABLE)
./$(EXECUTABLE) config/config08_bonus.json
.PHONY: clean cleanw submission run
#The dependencies:
-include $(wildcard *.d)
Я читал, что zdebug, кажется, вещь, и что более старые версии valgrind не поддерживают его, возможно ли, что моя версия еще не поддерживает его? Если да, то как их отключить / получить более новую версию?