* Implemented dladdr() in the runtime loader. This is like a gazillion times

faster than before.
* This also solves a TODO in dladdr(), although I did not use
  get_library_symbol() as I didn't quite see how that could fit as the comment
  suggested; there is now a new function get_symbol_at_address() for this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42598 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2011-08-07 21:01:23 +00:00
parent 5348fbe689
commit b6455c080b
7 changed files with 101 additions and 56 deletions
@@ -1,6 +1,6 @@
/*
* Copyright 2008-2009, Ingo Weinhold, [email protected].
* Copyright 2003-2006, Axel Dörfler, [email protected].
* Copyright 2003-2011, Axel Dörfler, [email protected].
* Distributed under the terms of the MIT License.
*
* Copyright 2002, Manuel J. Petit. All rights reserved.
@@ -33,8 +33,11 @@ struct rld_export {
int32 symbolType, bool recursive, image_id *_inImage, void **_location);
status_t (*get_library_symbol)(void* handle, void* caller,
const char* symbolName, void **_location);
status_t (*get_nth_image_symbol)(image_id imageID, int32 num, char *symbolName,
int32 *nameLength, int32 *symbolType, void **_location);
status_t (*get_nth_image_symbol)(image_id imageID, int32 num,
char *symbolName, int32 *nameLength, int32 *symbolType,
void **_location);
status_t (*get_symbol_at_address)(void* address, image_id* _imageID,
char* nameBuffer, int32* _nameLength, int32* _type, void** _location);
status_t (*test_executable)(const char *path, char *interpreter);
status_t (*get_next_image_dependency)(image_id id, uint32 *cookie,
const char **_name);