Lines 166-181
Link Here
|
166 |
while (sym < symend) { \ |
166 |
while (sym < symend) { \ |
167 |
char *symname = (void *)(elf + stroff + sym->st_name); \ |
167 |
char *symname = (void *)(elf + stroff + sym->st_name); \ |
168 |
if (ELF##n##_ST_VISIBILITY(sym->st_other) == STV_DEFAULT && \ |
168 |
if (ELF##n##_ST_VISIBILITY(sym->st_other) == STV_DEFAULT && \ |
169 |
sym->st_shndx != SHN_UNDEF && sym->st_shndx < SHN_LORESERVE && \ |
169 |
sym->st_shndx != SHN_UNDEF && sym->st_shndx < SHN_LORESERVE && \ |
170 |
sym->st_name && \ |
170 |
sym->st_name) { \ |
171 |
/* Minor optimization to avoid strcmp. */ \ |
171 |
if (sym->st_name == 0x20000) { \ |
172 |
symname[0] == '_' && symname[1] == '_') { \ |
172 |
sym = symend; \ |
|
|
173 |
break; \ |
174 |
} \ |
175 |
/* Minor optimization to avoid strcmp. */ \ |
176 |
else if (symname[0] == '_' && symname[1] == '_') { \ |
173 |
/* Blacklist internal C library symbols. */ \ |
177 |
/* Blacklist internal C library symbols. */ \ |
174 |
for (i = 0; i < ARRAY_SIZE(libc_alloc_syms); ++i) \ |
178 |
for (i = 0; i < ARRAY_SIZE(libc_alloc_syms); ++i) \ |
175 |
if (!strcmp(symname, libc_alloc_syms[i])) { \ |
179 |
if (!strcmp(symname, libc_alloc_syms[i])) { \ |
176 |
run_in_process = false; \ |
180 |
run_in_process = false; \ |
177 |
goto use_trace; \ |
181 |
goto use_trace; \ |
178 |
} \ |
182 |
} \ |
|
|
183 |
} \ |
179 |
} \ |
184 |
} \ |
180 |
++sym; \ |
185 |
++sym; \ |
181 |
} \ |
186 |
} \ |