libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libunwind-devel] [PATCH 4/6] Add ip argument to _UPTi_find_unwind_table


From: anderson . lizardo
Subject: [Libunwind-devel] [PATCH 4/6] Add ip argument to _UPTi_find_unwind_table
Date: Thu, 17 Jul 2008 10:23:26 -0300
User-agent: quilt/0.46-1

This new argument is necessary so that it can be passed to
dwarf_find_debug_frame().

Signed-off-by: Anderson Lizardo <address@hidden>
Signed-off-by: Bruna Moreira <address@hidden>
---
 src/ptrace/_UPT_find_proc_info.c |    8 +++++---
 src/ptrace/_UPT_internal.h       |    3 ++-
 2 files changed, 7 insertions(+), 4 deletions(-)

Index: libunwind-indt-split-v2/src/ptrace/_UPT_find_proc_info.c
===================================================================
--- libunwind-indt-split-v2.orig/src/ptrace/_UPT_find_proc_info.c
+++ libunwind-indt-split-v2/src/ptrace/_UPT_find_proc_info.c
@@ -97,7 +97,8 @@
 
 HIDDEN unw_dyn_info_t *
 _UPTi_find_unwind_table (struct UPT_info *ui, unw_addr_space_t as,
-                        char *path, unw_word_t segbase, unw_word_t mapoff)
+                        char *path, unw_word_t segbase, unw_word_t mapoff,
+                        unw_word_t ip)
 {
   Elf64_Phdr *phdr, *ptxt = NULL, *punw = NULL, *pdyn = NULL;
   Elf64_Ehdr *ehdr;
@@ -165,7 +166,8 @@
 
 HIDDEN unw_dyn_info_t *
 _UPTi_find_unwind_table (struct UPT_info *ui, unw_addr_space_t as,
-                        char *path, unw_word_t segbase, unw_word_t mapoff)
+                        char *path, unw_word_t segbase, unw_word_t mapoff,
+                        unw_word_t ip)
 {
   Elf_W(Phdr) *phdr, *ptxt = NULL, *peh_hdr = NULL, *pdyn = NULL;
   unw_word_t addr, eh_frame_start, fde_count, load_base;
@@ -344,7 +346,7 @@
 
   /* Here, SEGBASE is the starting-address of the (mmap'ped) segment
      which covers the IP we're looking for.  */
-  di = _UPTi_find_unwind_table (ui, as, path, segbase, mapoff);
+  di = _UPTi_find_unwind_table (ui, as, path, segbase, mapoff, ip);
   if (!di
       /* This can happen in corner cases where dynamically generated
          code falls into the same page that contains the data-segment
Index: libunwind-indt-split-v2/src/ptrace/_UPT_internal.h
===================================================================
--- libunwind-indt-split-v2.orig/src/ptrace/_UPT_internal.h
+++ libunwind-indt-split-v2/src/ptrace/_UPT_internal.h
@@ -52,6 +52,7 @@
                                                unw_addr_space_t as,
                                                char *path,
                                                unw_word_t segbase,
-                                               unw_word_t mapoff);
+                                               unw_word_t mapoff,
+                                               unw_word_t ip);
 
 #endif /* _UPT_internal_h */

-- 
Anderson Lizardo
Instituto Nokia de Tecnologia (INdT)
Manaus - Brazil




reply via email to

[Prev in Thread] Current Thread [Next in Thread]