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

Method StepLineTryPause

IDEHelper/WinDebugger.cpp:4199–4232  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4197}
4198
4199void WinDebugger::StepLineTryPause(addr_target address, bool requireExactMatch)
4200{
4201 if (mStepInAssembly)
4202 return;
4203
4204 if (mStepLineData.mLineData != NULL)
4205 {
4206 DbgSubprogram* dbgSubprogram = NULL;
4207 DbgSrcFile* dbgSrcFile = NULL;
4208 auto dwLineData = FindLineDataAtAddress(address, &dbgSubprogram, &dbgSrcFile);
4209 if ((dwLineData != NULL) && (dwLineData->IsStackFrameSetup()) && ((!requireExactMatch) || (dbgSubprogram->GetLineAddr(*dwLineData) == address)))
4210 {
4211 // "Invalid" line
4212 if (dwLineData->mColumn == -1)
4213 {
4214 SetupStep(mStepType);
4215 mRunState = RunState_Running;
4216 return;
4217 }
4218
4219 // If we're on the same line but a different column or a <= address then keep it keep looking
4220 if ((dbgSrcFile == mStepLineData.GetSrcFile()) &&
4221 ((!requireExactMatch) || (dwLineData != mStepLineData.mLineData) || (address <= mStepStartPC)) &&
4222 (dwLineData->mLine == mStepLineData.mLineData->mLine))
4223 {
4224 SetupStep(mStepType);
4225 mRunState = RunState_Running;
4226 return;
4227 }
4228 }
4229 }
4230
4231 mRunState = RunState_Paused;
4232}
4233
4234void WinDebugger::BreakAll()
4235{

Callers

nothing calls this directly

Calls 3

IsStackFrameSetupMethod · 0.80
GetLineAddrMethod · 0.80
GetSrcFileMethod · 0.45

Tested by

no test coverage detected