aboutsummaryrefslogtreecommitdiff
path: root/library.h
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2012-09-27 23:49:49 +0200
committerPetr Machata <pmachata@redhat.com>2012-10-01 14:18:54 +0200
commit4b4dff4c810ebaccb1e36e1b3e9d69cd793ebde1 (patch)
treea5116c5f08a4680087e4d061ab3f26d085febede /library.h
parent51e74aca71ff7e8be91c074afd4f2264f46294e9 (diff)
downloadltrace-4b4dff4c810ebaccb1e36e1b3e9d69cd793ebde1.tar.gz
Add a list of exported names to libraries
Those don't need to be full symbols, so we keep them separately.
Diffstat (limited to 'library.h')
-rw-r--r--library.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/library.h b/library.h
index 017b6b2..cea9156 100644
--- a/library.h
+++ b/library.h
@@ -39,6 +39,13 @@ enum toplt {
unsigned int target_address_hash(const void *key);
int target_address_cmp(const void *key1, const void *key2);
+/* For handling -l. */
+struct library_exported_name {
+ struct library_exported_name *next;
+ const char *name;
+ int own_name : 1;
+};
+
struct library_symbol {
struct library_symbol *next;
struct library *lib;
@@ -134,6 +141,12 @@ struct library {
* symbols that don't have a breakpoint attached (yet). */
struct library_symbol *symbols;
+ /* List of names that this library implements, and that match
+ * -l filter. Each time a new library is mapped, its list of
+ * exports is examined, and corresponding PLT slots are
+ * enabled. */
+ struct library_exported_name *exported_names;
+
const char *soname;
const char *pathname;