Ignore VDSO object

Do not try to load symbols from VDSO as it does not correspond to any
file on disk.
这个提交包含在:
Thomas Preud'homme 2014-02-28 23:27:21 +08:00
父节点 d75a8ea2a1
当前提交 f0aa8400b7
共有 1 个文件被更改,包括 4 次插入0 次删除

查看文件

@ -115,6 +115,7 @@
#define NEXT_FRAME_POINTER_ADDR(fp) (fp)
#define NEXT_PROGRAM_COUNTER_ADDR(fp) ((fp) + __SIZEOF_POINTER__)
#define DECLARE_REGS_STRUCT(regs) struct user_regs_struct regs
#define VDSO_NAME "linux-vdso.so.1"
#elif defined(__ARMEL__) /* armel */
#define ELF_MACHINE EM_ARM
#define PROGRAM_COUNTER(regs) (regs.ARM_pc)
@ -122,6 +123,7 @@
#define NEXT_FRAME_POINTER_ADDR(fp) ((fp) - __SIZEOF_POINTER__)
#define NEXT_PROGRAM_COUNTER_ADDR(fp) (fp)
#define DECLARE_REGS_STRUCT(regs) struct user_regs regs
#define VDSO_NAME ""
#elif defined(__ppc64__) || defined(__alpha__) || defined(__ia64__) || defined(s390x__)
#error Not (yet) supported architecture, patches welcomes :-)
#else
@ -481,6 +483,8 @@ static Symbols loadSyms(const char *fname)
if (*fname == '\0')
return (Symbols) 0;
if (!strcmp(VDSO_NAME, fname))
return (Symbols) 0;
syms = newSyms(fname);
if ((fd = open(fname, O_RDONLY)) < 0)
{