Skip to content

Commit 2a388bd

Browse files
rmacnak-googleCommit Queue
authored andcommitted
[vm] At least give module+offset when symbols are missing on Windows.
TEST=manually added crash Change-Id: I73c8a9417a52efb1c9a1fd0fbe913c60637f9613 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/422541 Reviewed-by: Alexander Aprelev <[email protected]> Commit-Queue: Ryan Macnak <[email protected]>
1 parent 3ef86d2 commit 2a388bd

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

runtime/vm/native_symbol_win.cc

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,22 @@ void NativeSymbolResolver::FreeSymbolName(const char* name) {
9595
bool NativeSymbolResolver::LookupSharedObject(uword pc,
9696
uword* dso_base,
9797
const char** dso_name) {
98+
#ifdef DART_TARGET_OS_WINDOWS_UWP
9899
return false;
100+
#else
101+
IMAGEHLP_MODULE64 info = {};
102+
info.SizeOfStruct = sizeof(info);
103+
if (!SymGetModuleInfo64(GetCurrentProcess(), pc, &info)) {
104+
return false;
105+
}
106+
if (dso_base != nullptr) {
107+
*dso_base = info.BaseOfImage;
108+
}
109+
if (dso_name != nullptr) {
110+
*dso_name = Utils::StrDup(info.ImageName);
111+
}
112+
return true;
113+
#endif // ifdef DART_TARGET_OS_WINDOWS_UWP
99114
}
100115

101116
void NativeSymbolResolver::AddSymbols(const char* dso_name,

0 commit comments

Comments
 (0)