aboutsummaryrefslogtreecommitdiff
path: root/common.h
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2012-04-10 04:32:39 +0200
committerPetr Machata <pmachata@redhat.com>2012-04-19 01:38:02 +0200
commit18bd8ffa003c680e3d44d1b05fc3a7b43e6a25ce (patch)
tree172f5d44bb322ce3bc6a018070c3b2023ddeb1d6 /common.h
parent93327cef38b3c09a88ca293ab52d6f5b6078f187 (diff)
downloadltrace-18bd8ffa003c680e3d44d1b05fc3a7b43e6a25ce.tar.gz
Add auxv reader
We should be able to instrument dynamic linker as well, if that is requested. Unfortunately we may still need artificial _start probe, because we don't know _r_debug address until the dynamic linker fills the DT_DEBUG entry. (Though we are likely to find _r_debug in symbol table if we look.)
Diffstat (limited to 'common.h')
-rw-r--r--common.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/common.h b/common.h
index 0d824da..eef3769 100644
--- a/common.h
+++ b/common.h
@@ -236,5 +236,13 @@ enum plt_status arch_elf_add_plt_entry(struct Process *p, struct ltelf *l,
int arch_breakpoint_init(struct Process *proc, struct breakpoint *sbp);
void arch_breakpoint_destroy(struct breakpoint *sbp);
+typedef void *target_address_t;
+/* This should extract entry point address and interpreter (dynamic
+ * linker) bias if possible. Returns 0 if there were no errors, -1
+ * otherwise. Sets *ENTRYP and *INTERP_BIASP to non-zero values if
+ * the corresponding value is known. Unknown values are set to 0. */
+int process_get_entry(struct Process *proc,
+ target_address_t *entryp,
+ target_address_t *interp_biasp);
#endif