MCPcopy Create free account
hub / github.com/aliasIsolation/aliasIsolation / symbol

Class symbol

src/crashHandler/crashHandler.cpp:166–190  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

164}
165
166class symbol {
167 typedef IMAGEHLP_SYMBOL64 sym_type;
168 sym_type *sym;
169 static const int max_name_len = 1024;
170public:
171 symbol(HANDLE process, DWORD64 address) : sym((sym_type *)::operator new(sizeof(*sym) + max_name_len)) {
172 memset(sym, '\0', sizeof(*sym) + max_name_len);
173 sym->SizeOfStruct = sizeof(*sym);
174 sym->MaxNameLength = max_name_len;
175 DWORD64 displacement;
176
177 if (!SymGetSymFromAddr64(process, address, &displacement, sym))
178 {
179 delete sym;
180 }
181 }
182
183 std::string name() { return sym ? std::string(sym->Name) : "???"; }
184 std::string undecorated_name() {
185 if (!sym) return "???";
186 std::vector<char> und_name(max_name_len);
187 UnDecorateSymbolName(sym->Name, &und_name[0], max_name_len, UNDNAME_COMPLETE);
188 return std::string(&und_name[0], strlen(&und_name[0]));
189 }
190};
191
192void show_stack(std::ostream &os, HANDLE hThread, CONTEXT& c) {
193 HANDLE process = GetCurrentProcess();

Callers 1

show_stackFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected