summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian Robbins <brianrob@microsoft.com>2019-10-15 11:23:19 -0700
committerStephen Toub <stoub@microsoft.com>2019-10-20 22:45:03 -0400
commita31b0b170f7cbcf3d669a2d03ea951e95ca290ea (patch)
tree03c68799301006fd7a2d6b1ac1ed4c24a3b9b647 /src
parent525f52122ad3919b6fb5df528533cc1039603d48 (diff)
downloadcoreclr-a31b0b170f7cbcf3d669a2d03ea951e95ca290ea.tar.gz
coreclr-a31b0b170f7cbcf3d669a2d03ea951e95ca290ea.tar.bz2
coreclr-a31b0b170f7cbcf3d669a2d03ea951e95ca290ea.zip
Fix Segfault in PerfInfo Image Logging (#26910)
Diffstat (limited to 'src')
-rw-r--r--src/vm/perfinfo.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/vm/perfinfo.cpp b/src/vm/perfinfo.cpp
index 7075137010..3667503bbf 100644
--- a/src/vm/perfinfo.cpp
+++ b/src/vm/perfinfo.cpp
@@ -41,8 +41,21 @@ void PerfInfo::LogImage(PEFile* pFile, WCHAR* guid)
SString value;
const SString& path = pFile->GetPath();
- PEImageLayout *pLoadedLayout = pFile->GetLoaded();
- SIZE_T baseAddr = (SIZE_T)pLoadedLayout->GetBase();
+ if (path.IsEmpty())
+ {
+ return;
+ }
+
+ SIZE_T baseAddr = 0;
+ if (pFile->IsILImageReadyToRun())
+ {
+ PEImageLayout *pLoadedLayout = pFile->GetLoaded();
+ if (pLoadedLayout)
+ {
+ baseAddr = (SIZE_T)pLoadedLayout->GetBase();
+ }
+ }
+
value.Printf("%S%c%S%c%p", path.GetUnicode(), sDelimiter, guid, sDelimiter, baseAddr);
SString command;