mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-11-27 01:27:39 +01:00
(HIDDEN): Make it empty unless we have at least GCC v3.3.
(unwi_get_proc_name): Also return the offset relative to the returned function-name. (struct elf_image): New structure. (Logical change 1.45)
This commit is contained in:
parent
9657e6d5ff
commit
f5265f56ba
1 changed files with 17 additions and 4 deletions
|
@ -33,7 +33,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include <libunwind.h>
|
#include <libunwind.h>
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
|
# if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ > 2)
|
||||||
# define HIDDEN __attribute__((visibility ("hidden")))
|
# define HIDDEN __attribute__((visibility ("hidden")))
|
||||||
|
# else
|
||||||
|
# define HIDDEN
|
||||||
|
# endif
|
||||||
# define likely(x) __builtin_expect ((x), 1)
|
# define likely(x) __builtin_expect ((x), 1)
|
||||||
# define unlikely(x) __builtin_expect ((x), 0)
|
# define unlikely(x) __builtin_expect ((x), 0)
|
||||||
#else
|
#else
|
||||||
|
@ -99,7 +103,8 @@ extern void UNWI_ARCH_OBJ(dyn_remote_put_unwind_info) (unw_addr_space_t as,
|
||||||
void *arg);
|
void *arg);
|
||||||
extern int UNWI_ARCH_OBJ(get_proc_name) (unw_addr_space_t as,
|
extern int UNWI_ARCH_OBJ(get_proc_name) (unw_addr_space_t as,
|
||||||
unw_word_t ip, int is_local,
|
unw_word_t ip, int is_local,
|
||||||
char *buf, size_t buf_len, void *arg);
|
char *buf, size_t buf_len,
|
||||||
|
unw_word_t *offp, void *arg);
|
||||||
|
|
||||||
#define unwi_find_dynamic_proc_info(as,ip,pi,n,arg) \
|
#define unwi_find_dynamic_proc_info(as,ip,pi,n,arg) \
|
||||||
UNWI_OBJ(find_dynamic_proc_info)(as, ip, pi, n, arg)
|
UNWI_OBJ(find_dynamic_proc_info)(as, ip, pi, n, arg)
|
||||||
|
@ -119,8 +124,8 @@ extern int UNWI_ARCH_OBJ(get_proc_name) (unw_addr_space_t as,
|
||||||
#define unwi_dyn_remote_put_unwind_info(as,p,arg) \
|
#define unwi_dyn_remote_put_unwind_info(as,p,arg) \
|
||||||
UNWI_ARCH_OBJ(dyn_remote_put_unwind_info)(as, p, arg)
|
UNWI_ARCH_OBJ(dyn_remote_put_unwind_info)(as, p, arg)
|
||||||
|
|
||||||
#define unwi_get_proc_name(as,ip,l,b,s,arg) \
|
#define unwi_get_proc_name(as,ip,l,b,s,o,arg) \
|
||||||
UNWI_ARCH_OBJ(get_proc_name)(as, ip, l, b, s, arg)
|
UNWI_ARCH_OBJ(get_proc_name)(as, ip, l, b, s, o, arg)
|
||||||
|
|
||||||
extern unw_dyn_info_list_t _U_dyn_info_list;
|
extern unw_dyn_info_list_t _U_dyn_info_list;
|
||||||
extern pthread_mutex_t _U_dyn_info_list_lock;
|
extern pthread_mutex_t _U_dyn_info_list_lock;
|
||||||
|
@ -206,6 +211,14 @@ fetchw (unw_addr_space_t as, unw_accessors_t *a,
|
||||||
|
|
||||||
extern void mi_init (void); /* machine-independent initializations */
|
extern void mi_init (void); /* machine-independent initializations */
|
||||||
|
|
||||||
|
/* This is needed/used by ELF targets only. */
|
||||||
|
|
||||||
|
struct elf_image
|
||||||
|
{
|
||||||
|
void *image; /* pointer to mmap'd image */
|
||||||
|
size_t size; /* (file-) size of the image */
|
||||||
|
};
|
||||||
|
|
||||||
#include <tdep.h>
|
#include <tdep.h>
|
||||||
|
|
||||||
#endif /* internal_h */
|
#endif /* internal_h */
|
||||||
|
|
Loading…
Reference in a new issue