"Серьезная ошибка при чтении отладочной информации" - подавить? игнорировать? исправить?
Я использую valgrind, чтобы попытаться найти причину нарушения доступа к памяти в программе C-cum-C++. Даже с таким предотвращенным доступом (т.е. когда все работает нормально), valgrind говорит мне:
==11436== Memcheck, a memory error detector
==11436== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==11436== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==11436== Command: bin/monetdb-bp-reader /home/eyalroz/dbfarms/monetdb/tpch-sf-1
==11436==
--11436-- WARNING: Serious error when reading debug info
--11436-- When reading debug info from /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.24:
--11436-- Ignoring non-Dwarf2/3/4 block in .debug_info
--11436-- WARNING: Serious error when reading debug info
--11436-- When reading debug info from /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.24:
--11436-- Last block truncated in .debug_info; ignoring
--11436-- WARNING: Serious error when reading debug info
--11436-- When reading debug info from /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.24:
--11436-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4
--11436-- WARNING: Serious error when reading debug info
--11436-- When reading debug info from /lib/x86_64-linux-gnu/libgcc_s.so.1:
--11436-- Ignoring non-Dwarf2/3/4 block in .debug_info
--11436-- WARNING: Serious error when reading debug info
--11436-- When reading debug info from /lib/x86_64-linux-gnu/libgcc_s.so.1:
--11436-- Last block truncated in .debug_info; ignoring
--11436-- WARNING: Serious error when reading debug info
--11436-- When reading debug info from /lib/x86_64-linux-gnu/libgcc_s.so.1:
--11436-- parse_CU_Header: is neither DWARF2 nor DWARF3 nor DWARF4
Что мне делать с этими предупреждениями? Нужно ли мне...
- Исправить их как-нибудь? Это в системных библиотеках, а не в моем коде; можно ли вообще что-то с ними сделать?
- Подавить их как-нибудь (но без подавления какого-либо добросовестного сообщения об ошибке)?
- Игнорировать их - если я не могу ни исправить, ни подавить?
Примечания: Я использую GNU/Linux Mint 18.4 с ядром 4.13.0-32 на машине X86_64.
1 ответ
Это может быть связано с включенными сжатыми отладочными символами в libstdC++. Поэтому см. Соответствующий отчет об ошибках debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810295.
Valgrind не поддерживал сжатые символы отладки в версии 3.11, но теперь он поддерживает их, см. https://bugs.kde.org/show_bug.cgi?id=303877. Я бы предложил обновить Valgrind до последней версии или собрать его из источников: http://valgrind.org/downloads/repository.html.