#include <elf.h>
#include <gelf.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
#include <sys/mman.h>
#include <linux/list.h>
#include <libunwind.h>
#include <libunwind-ptrace.h>
#include "thread.h"
#include "session.h"
#include "perf_regs.h"
#include "unwind.h"
#include "util.h"
Go to the source code of this file.
|
int UNW_OBJ() | dwarf_search_unwind_table (unw_addr_space_t as, unw_word_t ip, unw_dyn_info_t *di, unw_proc_info_t *pi, int need_unwind_info, void *arg) |
|
int | unwind__get_entries (unwind_entry_cb_t cb, void *arg, struct machine *machine, struct thread *thread, u64 sample_uregs, struct perf_sample *data) |
|
#define DW_EH_PE_absptr 0x00 /* absolute value */ |
#define DW_EH_PE_aligned 0x50 /* aligned pointer */ |
#define DW_EH_PE_APPL_MASK 0x70 /* how the value is to be applied */ |
#define DW_EH_PE_FORMAT_MASK 0x0f /* format of the encoded value */ |
#define DW_EH_PE_funcrel 0x40 /* start-of-procedure-relative */ |
#define DW_EH_PE_omit 0xff |
#define DW_EH_PE_pcrel 0x10 /* rel. to addr. of encoded value */ |
#define DW_EH_PE_ptr 0x00 /* pointer-sized unsigned value */ |
#define DW_EH_PE_sdata4 0x0b /* signed 32-bit value */ |
#define DW_EH_PE_sdata8 0x0c /* signed 64-bit value */ |
#define DW_EH_PE_udata4 0x03 /* unsigned 32-bit value */ |
#define DW_EH_PE_udata8 0x04 /* unsigned 64-bit value */ |
Value:
__v = *__p++; \
__v; \
})
Definition at line 82 of file unwind.c.
#define dw_read_encoded_value |
( |
|
ptr, |
|
|
|
end, |
|
|
|
enc |
|
) |
| |
Value:
if (__dw_read_encoded_value(&
ptr,
end, &__v, enc)) { \
} \
__v; \
})
Definition at line 144 of file unwind.c.
#define dwarf_search_unwind_table UNW_OBJ(dwarf_search_unwind_table) |
int UNW_OBJ() dwarf_search_unwind_table |
( |
unw_addr_space_t |
as, |
|
|
unw_word_t |
ip, |
|
|
unw_dyn_info_t * |
di, |
|
|
unw_proc_info_t * |
pi, |
|
|
int |
need_unwind_info, |
|
|
void * |
arg |
|
) |
| |