Bug #15519 ยป 0001-Don-t-use-C99-features-yet.patch
addr2line.c | ||
---|---|---|
di_find_abbrev(DebugInfoReader *reader, uint64_t abbrev_number)
|
||
{
|
||
char *p;
|
||
uint64_t n;
|
||
if (abbrev_number < ABBREV_TABLE_SIZE) {
|
||
return reader->abbrev_table[abbrev_number];
|
||
}
|
||
... | ... | |
uint64_t form = uleb128(&p);
|
||
if (!at && !form) break;
|
||
}
|
||
for (uint64_t n = uleb128(&p); abbrev_number != n; n = uleb128(&p)) {
|
||
for (n = uleb128(&p); abbrev_number != n; n = uleb128(&p)) {
|
||
if (n == 0) {
|
||
fprintf(stderr,"%d: Abbrev Number %"PRId64" not found\n",__LINE__, abbrev_number);
|
||
exit(1);
|
||
... | ... | |
DIE die;
|
||
ranges_t ranges = {};
|
||
line_info_t line = {};
|
||
int i;
|
||
if (!di_read_die(reader, &die)) continue;
|
||
/* fprintf(stderr,"%d:%tx: <%d>\n",__LINE__,die.pos,reader->level,die.tag); */
|
||
... | ... | |
}
|
||
/* ranges_inspect(reader, &ranges); */
|
||
/* fprintf(stderr,"%d:%tx: %x ",__LINE__,diepos,die.tag); */
|
||
for (int i=offset; i < num_traces; i++) {
|
||
for (i=offset; i < num_traces; i++) {
|
||
uintptr_t addr = (uintptr_t)traces[i];
|
||
uintptr_t offset = addr - reader->obj->base_addr + reader->obj->vmaddr;
|
||
uintptr_t saddr = ranges_include(reader, &ranges, offset);
|