From 6af1500b30bfdb343bbf1efe432f797cb2c03cdf Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 17 May 2016 10:40:09 +0200 Subject: Revert "Fix getting ELF symbol bind and type" This reverts commit a8a52cafb5621b475737ffdc81f63703d5b37904. It seems to be breaking backtracing in ddb... --- ddb/db_elf.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'ddb/db_elf.c') diff --git a/ddb/db_elf.c b/ddb/db_elf.c index f654ad7f..10e71621 100644 --- a/ddb/db_elf.c +++ b/ddb/db_elf.c @@ -165,23 +165,23 @@ elf_db_search_symbol (db_symtab_t *stab, if (s->st_name == 0) continue; - if (strategy == DB_STGY_XTRN && (ELF32_ST_BIND(s->st_info) != STB_GLOBAL)) + if (strategy == DB_STGY_XTRN && (s->st_info & STB_GLOBAL) == 0) continue; if (off >= s->st_value) { - if (ELF32_ST_TYPE(s->st_info) == STT_FUNC) + if (s->st_info == STT_FUNC) continue; if (off - s->st_value < diff) { diff = off - s->st_value; symp = s; - if (diff == 0 && (ELF32_ST_BIND(s->st_info) == STB_GLOBAL)) + if (diff == 0 && (s->st_info & STB_GLOBAL)) break; } else if (off - s->st_value == diff) { if (symp == NULL) symp = s; - else if ((ELF32_ST_BIND(symp->st_info) != STB_GLOBAL) - && (ELF32_ST_BIND(s->st_info) == STB_GLOBAL)) + else if ((symp->st_info & STB_GLOBAL) == 0 + && (s->st_info & STB_GLOBAL) != 0) symp = s; /* pick the external symbol */ } } -- cgit v1.2.3