Mercurial > pub > dyncall > dyncall
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 } |