Support base address selection entry

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2018-10-16 23:57:47 +00:00
Родитель e9a284ab94
Коммит 0f92eba17f
1 изменённых файлов: 5 добавлений и 1 удалений

Просмотреть файл

@ -1348,7 +1348,11 @@ ranges_include(DebugInfoReader *reader, ranges_t *ptr, uint64_t addr)
uintptr_t from = read_uintptr(&p);
uintptr_t to = read_uintptr(&p);
if (!from && !to) break;
if (base + from <= addr && addr <= base + to) {
if (from == UINTPTR_MAX) {
/* base address selection entry */
base = to;
}
else if (base + from <= addr && addr <= base + to) {
return from;
}
}