comparison test/dynload_plain/dynload_plain.c @ 218:cb56f077fd37

- dynload_plain test fixes
author Tassilo Philipp
date Thu, 06 Apr 2017 13:35:50 +0200
parents 0592eb360af2
children 7076f551faf5
comparison
equal deleted inserted replaced
217:87c695673522 218:cb56f077fd37
91 printf("num of libc symbols: %d\n", n); 91 printf("num of libc symbols: %d\n", n);
92 r += (n > 0); 92 r += (n > 0);
93 93
94 for(i=0; i<n; ++i) { 94 for(i=0; i<n; ++i) {
95 name = dlSymsName(pSyms, i); 95 name = dlSymsName(pSyms, i);
96 if(strcmp(name, "printf") == 0) { // check if we find "printf" also in iterated symbols 96 if(name && strcmp(name, "printf") == 0) { // check if we find "printf" also in iterated symbols
97 ++r; 97 ++r;
98 break; 98 break;
99 } 99 }
100 } 100 }
101 printf("printf symbol found by iteration: %d\n", i<n); 101 printf("printf symbol found by iteration: %d\n", i<n);
102 102
103 name = dlSymsName(pSyms, i); 103 name = dlSymsName(pSyms, i);
104 r += (strcmp(name, "printf") == 0); // check if we can lookup "printf" by index 104 r += (name && strcmp(name, "printf") == 0); // check if we can lookup "printf" by index
105 printf("printf symbol name by index: %s\n", name); 105 printf("printf symbol name by index: %s\n", name?name:"");
106 106
107 pLib = dlLoadLibrary(path); // check if we can resolve ptr -> name, 107 pLib = dlLoadLibrary(path); // check if we can resolve ptr -> name,
108 if(pLib) { // need to lookup by name again, first 108 if(pLib) { // need to lookup by name again, first
109 p = dlFindSymbol(pLib, "printf"); 109 p = dlFindSymbol(pLib, "printf");
110 name = dlSymsNameFromValue(pSyms, p); 110 name = dlSymsNameFromValue(pSyms, p);
111 printf("printf symbol name by its own address (%p): %s\n", p, name); 111 printf("printf symbol name by its own address (%p): %s\n", p, name?name:"");
112 r += (strcmp(name, "printf") == 0); 112 r += (name && strcmp(name, "printf") == 0);
113 dlFreeLibrary(pLib); 113 dlFreeLibrary(pLib);
114 } 114 }
115 115
116 dlSymsCleanup(pSyms); 116 dlSymsCleanup(pSyms);
117 } 117 }