mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-12-24 12:13:42 +01:00
(_UPT_get_dyn_info_list_addr): Bracket ia64-specific variables in #if UNW_TARGET_IA64.
If ui->ei.image is non-NULL, close the old image and invalidate the cache before mapping the new image. (Logical change 1.71)
This commit is contained in:
parent
e21a83deb0
commit
e00aa27222
1 changed files with 9 additions and 0 deletions
|
@ -34,12 +34,14 @@ 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)
|
||||||
{
|
{
|
||||||
|
#if UNW_TARGET_IA64
|
||||||
unsigned long lo, hi, off;
|
unsigned long lo, hi, off;
|
||||||
struct UPT_info *ui = arg;
|
struct UPT_info *ui = arg;
|
||||||
struct map_iterator mi;
|
struct map_iterator mi;
|
||||||
char path[PATH_MAX];
|
char path[PATH_MAX];
|
||||||
unw_dyn_info_t *di;
|
unw_dyn_info_t *di;
|
||||||
unw_word_t res;
|
unw_word_t res;
|
||||||
|
#endif
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
debug (100, "%s: looking for dyn_info list\n", __FUNCTION__);
|
debug (100, "%s: looking for dyn_info list\n", __FUNCTION__);
|
||||||
|
@ -51,6 +53,13 @@ _UPT_get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dil_addr,
|
||||||
if (off)
|
if (off)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (ui->ei.image)
|
||||||
|
{
|
||||||
|
munmap (ui->ei.image, ui->ei.size);
|
||||||
|
/* invalidate the cache: */
|
||||||
|
ui->di_cache.start_ip = ui->di_cache.end_ip = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (elf_map_image (&ui->ei, path) < 0)
|
if (elf_map_image (&ui->ei, path) < 0)
|
||||||
return -UNW_ENOINFO;
|
return -UNW_ENOINFO;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue