From 7ab299b2465cda2b9fb0ce5c4014906cc7d20e31 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 22 Jul 2023 20:43:59 +0200 Subject: [TRACE] Fixed crash when tracing a function that is not defined in main at beggining --- src/librarian/librarian.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/librarian') diff --git a/src/librarian/librarian.c b/src/librarian/librarian.c index 5de70936..8d4c6cbb 100644 --- a/src/librarian/librarian.c +++ b/src/librarian/librarian.c @@ -400,12 +400,14 @@ int GetNoSelfSymbolStartEnd(lib_t *maplib, const char* name, uintptr_t* start, u } if(go<0) go = 0; // not found... + if(maplib) for(int i=go; ilibsz; ++i) { if(GetElfIndex(maplib->libraries[i])==-1 || (GetElf(maplib->libraries[i])!=self)) if(GetLibGlobalSymbolStartEnd(maplib->libraries[i], name, start, end, size, &weak, version, vername, 0, globdefver)) if(*start) return 1; } + if(maplib) for(int i=go; ilibsz; ++i) if(GetElfIndex(maplib->libraries[i])==-1 || (GetElf(maplib->libraries[i])!=self)) GetLibWeakSymbolStartEnd(maplib->libraries[i], name, start, end, size, &weak, version, vername, 0, weakdefver); @@ -428,6 +430,7 @@ int GetNoSelfSymbolStartEnd(lib_t *maplib, const char* name, uintptr_t* start, u if(*start) return 1; } + if(maplib) for(int i=0; ilibraries[i])==-1 || (GetElf(maplib->libraries[i])!=self)) GetLibWeakSymbolStartEnd(maplib->libraries[i], name, start, end, size, &weak, version, vername, 1, weakdefver); @@ -460,6 +463,7 @@ static int GetGlobalSymbolStartEnd_internal(lib_t *maplib, const char* name, uin if(*start) return 1; // search in global symbols + if(maplib) for(int i=0; ilibsz; ++i) { if(GetLibGlobalSymbolStartEnd(maplib->libraries[i], name, start, end, size, &weak, version, vername, isLocal(self, maplib->libraries[i]), globdefver)) if(*start) @@ -473,6 +477,7 @@ static int GetGlobalSymbolStartEnd_internal(lib_t *maplib, const char* name, uin if(*start) ok = 1; + if(maplib) for(int i=0; ilibsz; ++i) { if(GetLibWeakSymbolStartEnd(maplib->libraries[i], name, start, end, size, &weak, version, vername, isLocal(self, maplib->libraries[i]), weakdefver)) if(*start) -- cgit 1.4.1