in Common/Common.cpp [665:728]
string Profile::GetXml(UINT32 indent) const
{
string sXml;
char buffer[4096];
AddXmlInc(sXml, "<Profile>\n");
sprintf_s(buffer, _countof(buffer), "<Progress>%u</Progress>\n", _dwProgress);
AddXml(sXml, buffer);
if (_resultsFormat == ResultsFormat::Text)
{
AddXml(sXml, "<ResultFormat>text</ResultFormat>\n");
}
else if (_resultsFormat == ResultsFormat::Xml)
{
AddXml(sXml, "<ResultFormat>xml</ResultFormat>\n");
}
else
{
AddXml(sXml, "<ResultFormat>* UNSUPPORTED *</ResultFormat>\n");
}
AddXml(sXml, _fVerbose ? "<Verbose>true</Verbose>\n" : "<Verbose>false</Verbose>\n");
if (_precreateFiles == PrecreateFiles::UseMaxSize)
{
AddXml(sXml, "<PrecreateFiles>UseMaxSize</PrecreateFiles>\n");
}
else if (_precreateFiles == PrecreateFiles::OnlyFilesWithConstantSizes)
{
AddXml(sXml, "<PrecreateFiles>CreateOnlyFilesWithConstantSizes</PrecreateFiles>\n");
}
else if (_precreateFiles == PrecreateFiles::OnlyFilesWithConstantOrZeroSizes)
{
AddXml(sXml, "<PrecreateFiles>CreateOnlyFilesWithConstantOrZeroSizes</PrecreateFiles>\n");
}
if (_fEtwEnabled)
{
AddXmlInc(sXml, "<ETW>\n");
AddXml(sXml, _fEtwProcess ? "<Process>true</Process>\n" : "<Process>false</Process>\n");
AddXml(sXml, _fEtwThread ? "<Thread>true</Thread>\n" : "<Thread>false</Thread>\n");
AddXml(sXml, _fEtwImageLoad ? "<ImageLoad>true</ImageLoad>\n" : "<ImageLoad>false</ImageLoad>\n");
AddXml(sXml, _fEtwDiskIO ? "<DiskIO>true</DiskIO>\n" : "<DiskIO>false</DiskIO>\n");
AddXml(sXml, _fEtwMemoryPageFaults ? "<MemoryPageFaults>true</MemoryPageFaults>\n" : "<MemoryPageFaults>false</MemoryPageFaults>\n");
AddXml(sXml, _fEtwMemoryHardFaults ? "<MemoryHardFaults>true</MemoryHardFaults>\n" : "<MemoryHardFaults>false</MemoryHardFaults>\n");
AddXml(sXml, _fEtwNetwork ? "<Network>true</Network>\n" : "<Network>false</Network>\n");
AddXml(sXml, _fEtwRegistry ? "<Registry>true</Registry>\n" : "<Registry>false</Registry>\n");
AddXml(sXml, _fEtwUsePagedMemory ? "<UsePagedMemory>true</UsePagedMemory>\n" : "<UsePagedMemory>false</UsePagedMemory>\n");
AddXml(sXml, _fEtwUsePerfTimer ? "<UsePerfTimer>true</UsePerfTimer>\n" : "<UsePerfTimer>false</UsePerfTimer>\n");
AddXml(sXml, _fEtwUseSystemTimer ? "<UseSystemTimer>true</UseSystemTimer>\n" : "<UseSystemTimer>false</UseSystemTimer>\n");
AddXml(sXml, _fEtwUseCyclesCounter ? "<UseCyclesCounter>true</UseCyclesCounter>\n" : "<UseCyclesCounter>false</UseCyclesCounter>\n");
AddXmlDec(sXml, "</ETW>\n");
}
AddXmlInc(sXml, "<TimeSpans>\n");
for (const auto& timespan : _vTimeSpans)
{
sXml += timespan.GetXml(indent);
}
AddXmlDec(sXml, "</TimeSpans>\n");
AddXmlDec(sXml, "</Profile>\n");
return sXml;
}