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

Method RequestDebugInfo

IDEHelper/COFF.cpp:6927–6968  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6925}
6926
6927bool COFF::RequestDebugInfo(bool allowRemote)
6928{
6929 if (mDbgSymRequest == NULL)
6930 return false;
6931
6932 if (mDbgSymRequest->mInProcess)
6933 return false;
6934
6935 bool hasDebugInfo = false;
6936 mDbgSymRequest->SearchCache();
6937 if (mDbgSymRequest->mFinalPDBPath.IsEmpty())
6938 {
6939 if (!allowRemote)
6940 return false;
6941
6942 if (GetCurrentThreadId() == mDebugger->mDebuggerThreadId)
6943 {
6944 auto prevRunState = mDebugger->mRunState;
6945 mDebugger->mRunState = RunState_SearchingSymSrv;
6946
6947 mDbgSymRequest->mInProcess = true;
6948 mDebugger->mActiveSymSrvRequest = mDbgSymRequest;
6949 BF_ASSERT(mDebugger->mDebugManager->mCritSect.mLockCount == 1);
6950 mDebugger->mDebugManager->mCritSect.Unlock();
6951 mDbgSymRequest->SearchSymSrv();
6952 mDebugger->mDebugManager->mCritSect.Lock();
6953 mDebugger->mActiveSymSrvRequest = NULL;
6954 mDbgSymRequest->mInProcess = false;
6955
6956 mDebugger->mRunState = prevRunState;
6957 }
6958 else
6959 {
6960 return false;
6961 }
6962 }
6963 if (!mDbgSymRequest->mFinalPDBPath.IsEmpty())
6964 hasDebugInfo = TryLoadPDB(mDbgSymRequest->mFinalPDBPath, mDbgSymRequest->mWantGuid, mDbgSymRequest->mWantAge);
6965 mDebugger->mDbgSymSrv.ReleaseRequest(mDbgSymRequest);
6966 mDbgSymRequest = NULL;
6967 return hasDebugInfo;
6968}
6969
6970bool COFF::WantsAutoLoadDebugInfo()
6971{

Callers 3

DoUpdateMethod · 0.45
FindSubProgramMethod · 0.45

Calls 6

SearchCacheMethod · 0.80
SearchSymSrvMethod · 0.80
ReleaseRequestMethod · 0.80
IsEmptyMethod · 0.45
UnlockMethod · 0.45
LockMethod · 0.45

Tested by

no test coverage detected