MCPcopy Create free account
hub / github.com/beefytech/Beef / RequestImage

Method RequestImage

IDEHelper/COFF.cpp:6886–6925  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6884}
6885
6886bool COFF::RequestImage()
6887{
6888 if (!mDebugger->IsMiniDumpDebugger())
6889 return false;
6890
6891 if (mLoadState != DbgModuleLoadState_NotLoaded)
6892 return false;
6893
6894 auto miniDumpDebugger = (MiniDumpDebugger*)mDebugger;
6895
6896 if (mOrigImageData != NULL)
6897 return false;
6898
6899 if (GetCurrentThreadId() == mDebugger->mDebuggerThreadId)
6900 {
6901 auto prevRunState = mDebugger->mRunState;
6902 mDebugger->mRunState = RunState_SearchingSymSrv;
6903 mDebugger->mDebugManager->mOutMessages.push_back(StrFormat("symsrv Searching for image '%s'", mFilePath.c_str()));
6904
6905 auto dbgSymRequest = mDebugger->mDbgSymSrv.CreateRequest();
6906 mDebugger->mActiveSymSrvRequest = dbgSymRequest;
6907 BF_ASSERT(mDebugger->mDebugManager->mCritSect.mLockCount == 1);
6908 mDebugger->mDebugManager->mCritSect.Unlock();
6909 // We unlock to allow the IDE to continue updating while we search
6910 String imagePath = dbgSymRequest->SearchForImage(mFilePath, mTimeStamp, mImageSize);
6911 mDebugger->mDebugManager->mCritSect.Lock();
6912 delete mDebugger->mActiveSymSrvRequest;
6913 mDebugger->mActiveSymSrvRequest = NULL;
6914
6915 mDebugger->mRunState = prevRunState;
6916
6917 return LoadModuleImage(imagePath);
6918 }
6919 else
6920 {
6921 return false;
6922 }
6923
6924 return false;
6925}
6926
6927bool COFF::RequestDebugInfo(bool allowRemote)
6928{

Callers 1

DoUpdateMethod · 0.45

Calls 7

CreateRequestMethod · 0.80
SearchForImageMethod · 0.80
IsMiniDumpDebuggerMethod · 0.45
push_backMethod · 0.45
c_strMethod · 0.45
UnlockMethod · 0.45
LockMethod · 0.45

Tested by

no test coverage detected