MCPcopy Create free account
hub / github.com/OpenCppCoverage/OpenCppCoverage / Enumerate

Method Enumerate

CppCoverage/DebugInformationEnumerator.cpp:223–251  ·  view source on GitHub ↗

-------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

221
222 //-------------------------------------------------------------------------
223 bool
224 DebugInformationEnumerator::Enumerate(const std::filesystem::path& path,
225 IDebugInformationHandler& handler)
226 {
227 auto sourcePtr = LoadDataForExe(path);
228
229 if (!sourcePtr)
230 return false;
231
232 CComPtr<IDiaSession> sessionPtr;
233 if (sourcePtr->openSession(&sessionPtr) != S_OK || !sessionPtr)
234 THROW("DIA: Cannot open session.");
235
236 auto sourceFiles = GetEnumSourceFiles(*sessionPtr);
237 if (!sourceFiles)
238 THROW("DIA: cannot get SourceFiles");
239
240 EnumerateCollection<IDiaSourceFile>(
241 *sourceFiles, [&](IDiaSourceFile& sourceFile) {
242 auto filename = GetSourceFileName(sourceFile);
243 if (handler.IsSourceFileSelected(filename))
244 {
245 lines_.clear();
246 EnumLines(*sessionPtr, sourceFile, handler);
247 handler.OnSourceFile(filename, lines_);
248 }
249 });
250 return true;
251 }
252
253 //----------------------------------------------------------------------
254 void

Callers 2

RegisterLineToMonitorMethod · 0.80
TESTFunction · 0.80

Calls 4

LoadDataForExeFunction · 0.85
GetEnumSourceFilesFunction · 0.85
IsSourceFileSelectedMethod · 0.45
OnSourceFileMethod · 0.45

Tested by 1

TESTFunction · 0.64