Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreutarass2010-06-17 02:18:58 +0000
committereutarass2010-06-17 02:18:58 +0000
commit55907b2fe442ad796271ccb47d66ac0c55c5b8e1 (patch)
tree396c3958d278c2966be38b653b97f087e16df994 /services/tcf_elf.h
parentc151b13efbc33c158cac768af4ad13f29153ad08 (diff)
downloadorg.eclipse.tcf.agent-55907b2fe442ad796271ccb47d66ac0c55c5b8e1.tar.gz
org.eclipse.tcf.agent-55907b2fe442ad796271ccb47d66ac0c55c5b8e1.tar.xz
org.eclipse.tcf.agent-55907b2fe442ad796271ccb47d66ac0c55c5b8e1.zip
TCF Agent: implemented fast search of DWARF compilation units using .debug_aranges section
Diffstat (limited to 'services/tcf_elf.h')
-rw-r--r--services/tcf_elf.h17
1 files changed, 7 insertions, 10 deletions
diff --git a/services/tcf_elf.h b/services/tcf_elf.h
index 4d69361e..523193b4 100644
--- a/services/tcf_elf.h
+++ b/services/tcf_elf.h
@@ -343,7 +343,6 @@ typedef struct ELF_PHeader ELF_PHeader;
struct ELF_File {
ELF_File * next;
- U4_T ref_cnt;
char * name;
dev_t dev;
@@ -412,20 +411,13 @@ extern void swap_bytes(void * buf, size_t size);
/*
* Open ELF file for reading.
- * Same file can be opened mutiple times, each call to elf_open() increases reference counter.
- * File must be closed after usage by calling elf_close().
+ * Same file can be opened mutiple times.
* Returns the file descriptior on success. If error, returns NULL and sets errno.
+ * The file descriptor is valid only during single dispatch cycle.
*/
extern ELF_File * elf_open(char * file_name);
/*
- * Close ELF file.
- * Each call of elf_close() decrements reference counter.
- * The file will be kept in a cache for some time even after all references are closed.
- */
-extern void elf_close(ELF_File * file);
-
-/*
* Iterate context ELF files that are mapped in context memory in given address range (inclusive).
* Returns the file descriptior on success. If error, returns NULL and sets errno.
*/
@@ -474,6 +466,11 @@ extern int elf_read_memory_word(Context * ctx, ELF_File * file, ContextAddress a
extern ContextAddress elf_get_debug_structure_address(Context * ctx, ELF_File ** file);
/*
+ * Search and return first compilation unit address range in given run-time address range 'addr_min'..'addr_max'.
+ */
+extern struct UnitAddressRange * elf_find_unit(Context * ctx, ContextAddress addr_min, ContextAddress addr_max);
+
+/*
* Initialize ELF support module.
*/
extern void ini_elf(void);

Back to the top