mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-12-24 20:23:41 +01:00
(create_state_record_for): Handle UNW_INFO_FORMAT_REMOTE_TABLE.
(Logical change 1.126)
This commit is contained in:
parent
48723262f7
commit
0976af5f9f
1 changed files with 11 additions and 3 deletions
|
@ -949,16 +949,24 @@ create_state_record_for (struct cursor *c, struct ia64_state_record *sr,
|
||||||
sr->when_target = (3 * ((ip & ~(unw_word_t) 0xf) - c->pi.start_ip) / 16
|
sr->when_target = (3 * ((ip & ~(unw_word_t) 0xf) - c->pi.start_ip) / 16
|
||||||
+ (ip & 0xf));
|
+ (ip & 0xf));
|
||||||
|
|
||||||
if (c->pi.format == UNW_INFO_FORMAT_TABLE)
|
switch (c->pi.format)
|
||||||
{
|
{
|
||||||
|
case UNW_INFO_FORMAT_TABLE:
|
||||||
|
case UNW_INFO_FORMAT_REMOTE_TABLE:
|
||||||
dp = c->pi.unwind_info;
|
dp = c->pi.unwind_info;
|
||||||
desc_end = dp + c->pi.unwind_info_size;
|
desc_end = dp + c->pi.unwind_info_size;
|
||||||
while (!sr->done && dp < desc_end)
|
while (!sr->done && dp < desc_end)
|
||||||
dp = unw_decode (dp, sr->in_body, sr);
|
dp = unw_decode (dp, sr->in_body, sr);
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case UNW_INFO_FORMAT_DYNAMIC:
|
||||||
|
ret = parse_dynamic (c, sr);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
ret = -UNW_EINVAL;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
ret = parse_dynamic (c, sr);
|
|
||||||
|
|
||||||
put_unwind_info (c, &c->pi);
|
put_unwind_info (c, &c->pi);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue