Не удалось загрузить общие библиотеки для linux-vdso.so.1. при отладке
Не загружать VDSO.so - это одна из известных ошибок, с которыми вы сталкиваетесь при использовании gdb и glibc > 2.2.
Я обнаружил, что планировалось получить ремонт в gdb 7.5.1, но это не так.
Хорошо, я нашел здесь работу здесь Здесь, но я не понял его, как его применить.
ОС: Arch Linux
IDE: создатель QT 3.0.82
Компилятор: GCC 4.8.2
NB: Я не уверен, нарушаю ли правила, включая ссылку выше
Ответы
Ответ 1
Не загружать VDSO.so - это одна из известных ошибок, с которыми вы сталкиваетесь при использовании gdb и glibc > 2.2.
Нет, нет. Проблема здесь - просто бесполезное предупреждение, которое можно спокойно игнорировать.
Я нашел здесь работу здесь, но я не понял ее, как ее применять.
Вы не нашли "обходного пути". Вы обнаружили патч для GDB, который отключает предупреждение.
Чтобы применить его, используйте команду patch
, а затем создайте свой собственный GDB. Но гораздо проще просто игнорировать предупреждение в первую очередь.
Ответ 2
Для тех, кто (как и я) просто хочет, чтобы gdb заткнулся о недостающих символах, попробуйте добавить это в свой ~/.gdbinit
(но см. ниже предостережения):
set logging redirect on
set logging file /dev/null
python
def on_new_objfile(e):
gdb.execute("set logging off")
#print "new objfile:",e.new_objfile.filename
if e.new_objfile.filename[:19] == "system-supplied DSO":
gdb.execute("set logging on") # hide inevitable error message
gdb.events.new_objfile.connect(on_new_objfile)
end
Предостережения:
- Монополизирует интерфейс
set logging
; если вы хотите использовать ведение журнала, вам необходимо изменить его, чтобы сохранить предыдущие параметры ведения журнала.
- Жесткие коды
"system-supplied DSO"
; может быть хрупким по сравнению с новыми версиями ядра или gdb.
- Предполагается, что по крайней мере один objfile будет загружен после vdso для последующего вывода; Мне было бы очень интересно, если бы кто-нибудь с лучшими знаниями внутренних систем gdb мог указать на фактический захват после символа-load-has-failed, поскольку на данный момент он рискует оставить вывод отключенным, когда программа запустится, если vdso является последним загруженным файлом objfile.