问题
Not loading VDSO.so is one of the famous bugs you encounter while using gdb and glibc >2.2.
I found that was planned to get repaired in gdb 7.5.1, but it wasn't.
Okay I found a work-around here Here, but I didn't understand it so how to apply it.
OS: Arch Linux
IDE : QT creator 3.0.82
Compiler : GCC 4.8.2
NB: I am not sure if I am breaking the rules including the link above
回答1:
Not loading VDSO.so is one of the famous bugs you encounter while using gdb and glibc >2.2.
No, it's not. The problem here is simply a useless warning, which you can safely ignore.
I found a work-around here Here, but I didn't understand it so how to apply it.
You didn't find a "workaround". You found a patch to GDB, which disables the warning.
To apply it, use the patch command, and then build your own GDB. But it is much simpler to just ignore the warning in the first place.
回答2:
For anyone who (like me) just wants gdb to shut up about missing symbols, try adding this to your ~/.gdbinit (but see caveats below):
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
Caveats:
Monopolizes the set logging interface; if you want to use logging you'll need to change it to save the previous logging settings.
Hard-codes "system-supplied DSO"; might be brittle wrt new kernel or gdb versions.
It assumes at least one objfile will be loaded after vdso to reenable output; I'd be very interested if anyone with better gdb internals knowledge could point out the actual after-symbol-load-has-failed hook, since for now it risks leaving output disabled when the program starts if vdso is the last objfile loaded.
来源:https://stackoverflow.com/questions/22822425/could-not-load-shared-library-symbols-for-linux-vdso-so-1-while-debugging
解决gdb不加载VDSO.so的问题
本文介绍了一个常见的gdb与glibc>2.2版本使用过程中遇到的关于VDSO.so未加载的问题。这实际上是gdb的一个警告而非错误,可以直接忽略。若希望消除此警告,可以通过修改~/.gdbinit文件实现。
2157

被折叠的 条评论
为什么被折叠?



