mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-11-27 01:27:39 +01:00
[UNW_TARGET_IA64]: Include elf64.h and os-linux.h.
(_UPT_get_dyn_info_list_addr): Use elf_map_image() to map the elf-image. (Logical change 1.45)
This commit is contained in:
parent
19a4e775ac
commit
2da7f4a5a5
1 changed files with 15 additions and 0 deletions
|
@ -25,6 +25,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "_UPT_internal.h"
|
#include "_UPT_internal.h"
|
||||||
|
|
||||||
|
#ifdef UNW_TARGET_IA64
|
||||||
|
# include "elf64.h"
|
||||||
|
# include "os-linux.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
_UPT_get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dil_addr,
|
_UPT_get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dil_addr,
|
||||||
void *arg)
|
void *arg)
|
||||||
|
@ -45,9 +50,16 @@ _UPT_get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dil_addr,
|
||||||
|
|
||||||
ui->checked_dyn_info_list_addr = 1;
|
ui->checked_dyn_info_list_addr = 1;
|
||||||
|
|
||||||
|
#if UNW_TARGET_IA64
|
||||||
maps_init (&mi, ui->pid);
|
maps_init (&mi, ui->pid);
|
||||||
while (maps_next (&mi, &lo, &hi, &off, path))
|
while (maps_next (&mi, &lo, &hi, &off, path))
|
||||||
{
|
{
|
||||||
|
if (off)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (elf_map_image (&ui->ei, path) < 0)
|
||||||
|
return -UNW_ENOINFO;
|
||||||
|
|
||||||
di = _UPTi_find_unwind_table (ui, as, path, lo, off);
|
di = _UPTi_find_unwind_table (ui, as, path, lo, off);
|
||||||
if (di)
|
if (di)
|
||||||
{
|
{
|
||||||
|
@ -60,6 +72,9 @@ _UPT_get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dil_addr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
maps_close (&mi);
|
maps_close (&mi);
|
||||||
|
#else
|
||||||
|
# error Implement me, please.
|
||||||
|
#endif
|
||||||
|
|
||||||
/* If multiple dynamic-info list addresses are found, we would have
|
/* If multiple dynamic-info list addresses are found, we would have
|
||||||
to determine which was is the one actually in use (since the
|
to determine which was is the one actually in use (since the
|
||||||
|
|
Loading…
Reference in a new issue