Bug #17052 » ruby-addr2line-debug_info_read-debug-code-0001.patch
| addr2line.c | ||
|---|---|---|
|
{
|
||
|
const char *p = reader->abbrev_table[abbrev_number];
|
||
|
if (!p) {
|
||
|
fprintf(stderr,"%d: Abbrev Number %"PRId64" not found\n",__LINE__, abbrev_number);
|
||
|
uint64_t a = abbrev_number;
|
||
|
ptrdiff_t len = 0;
|
||
|
while (a) {
|
||
|
len++;
|
||
|
a >>= 7;
|
||
|
}
|
||
|
fprintf(stderr,"%d: debug_info 0x%"PRIxPTR" Abbrev Number %"PRId64" not found\n",__LINE__, reader->p - reader->obj->debug_info.ptr - len, abbrev_number);
|
||
|
abort();
|
||
|
}
|
||
|
return p;
|
||
| ... | ... | |
|
}
|
||
|
}
|
||
|
}
|
||
|
/* assert(reader->p >= reader->cu_end); */
|
||
|
ptrdiff_t p_rel = reader->p - reader->obj->debug_info.ptr;
|
||
|
ptrdiff_t cu_end_rel = reader->cu_end - reader->obj->debug_info.ptr;
|
||
|
if (reader->p > reader->cu_end) {
|
||
|
fprintf(stderr,"%d: debug_info CU over-read 0x%"PRIxPTR" > 0x%"PRIxPTR"\n",__LINE__, p_rel, cu_end_rel);
|
||
|
abort();
|
||
|
}
|
||
|
/* assert(reader->p == reader->cu_end); */
|
||
|
}
|
||
|
#ifdef USE_ELF
|
||
- « Previous
- 1
- …
- 3
- 4
- 5
- Next »