| 120 | } |
| 121 | |
| 122 | rdcstr LookupModule(const rdcstr &modName, GUID guid, DWORD age) |
| 123 | { |
| 124 | rdcstr ret = modName; |
| 125 | |
| 126 | rdcstr pdbName = get_basename(ret); |
| 127 | |
| 128 | if(pdbName.find(".pdb") == -1 && pdbName.find(".PDB") == -1) |
| 129 | { |
| 130 | if(pdbName.contains('.')) |
| 131 | pdbName = strip_extension(pdbName) + ".pdb"; |
| 132 | } |
| 133 | |
| 134 | if(dynSymFindFileInPathW != NULL) |
| 135 | { |
| 136 | rdcwstr sympath = GetSymSearchPath(); |
| 137 | |
| 138 | wchar_t path[MAX_PATH + 1] = {0}; |
| 139 | BOOL found = dynSymFindFileInPathW(GetCurrentProcess(), sympath.c_str(), |
| 140 | StringFormat::UTF82Wide(pdbName).c_str(), &guid, age, 0, |
| 141 | SSRVOPT_GUIDPTR, path, NULL, NULL); |
| 142 | DWORD err = GetLastError(); |
| 143 | (void)err; // for debugging only |
| 144 | |
| 145 | if(found == TRUE && path[0] != 0) |
| 146 | ret = StringFormat::Wide2UTF8(path); |
| 147 | } |
| 148 | |
| 149 | return ret; |
| 150 | } |
| 151 | |
| 152 | rdcwstr msdiapath = L"msdia140.dll"; |
| 153 |
no test coverage detected