diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-08-29 11:10:45 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-08-29 11:10:45 +0200 |
| commit | 4cdd46819fec91bdbdad4f7c50b665d43ec6f4a8 (patch) | |
| tree | e432705fc61a434e2405b2a6fda9611cdd4ea714 /src/librarian | |
| parent | 0450371e282bd5c4dbbceaeca590626304609036 (diff) | |
| download | box64-4cdd46819fec91bdbdad4f7c50b665d43ec6f4a8.tar.gz box64-4cdd46819fec91bdbdad4f7c50b665d43ec6f4a8.zip | |
[TRACE] Improved trace on symbol name
Diffstat (limited to 'src/librarian')
| -rw-r--r-- | src/librarian/librarian.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/librarian/librarian.c b/src/librarian/librarian.c index 259f7e0c..ddeb063b 100644 --- a/src/librarian/librarian.c +++ b/src/librarian/librarian.c @@ -722,6 +722,19 @@ int GetLocalSymbolStartEnd(lib_t *maplib, const char* name, uintptr_t* start, ui return 0; } +int GetAnySymbolStartEnd(lib_t *maplib, const char* name, uintptr_t* start, uintptr_t* end, int version, const char* vername, int veropt) +{ + if(!maplib) + return 0; + for(int i=0; i<maplib->libsz; ++i) { + elfheader_t* h = GetElf(maplib->libraries[i]); + if(h && ElfGetSymbolStartEnd(h, start, end, name, NULL, NULL, 1, &veropt)) + return 1; + } + return 0; + +} + int GetSymTabStartEnd(lib_t* maplib, const char* name, uintptr_t* start, uintptr_t* end) { if(!maplib) @@ -729,7 +742,8 @@ int GetSymTabStartEnd(lib_t* maplib, const char* name, uintptr_t* start, uintptr for(int i=0; i<maplib->libsz; ++i) { elfheader_t* h = GetElf(maplib->libraries[i]); if(box64_is32bits) { - /* TODO */ + if(h && ElfGetSymTabStartEnd32(h, start, end, name)) + return 1; } else { if(h && ElfGetSymTabStartEnd64(h, start, end, name)) return 1; |