TraceLoader::~TraceLoader()
{
m_parser.close();
+ qDeleteAll(m_signatures);
+ qDeleteAll(m_enumSignatures);
}
void TraceLoader::loadTrace(const QString &filename)
qDebug() << "error: failed to open " << filename;
return;
}
- qDebug()<<"load trace with "<<filename;
+
emit startedParsing();
- qDebug() <<"\t support offsets = "<<m_parser.supportsOffsets();
if (m_parser.supportsOffsets()) {
scanTrace();
} else {
TraceLoader::fetchFrameContents(ApiTraceFrame *currentFrame)
{
Q_ASSERT(currentFrame);
+
+ if (currentFrame->isLoaded()) {
+ return currentFrame->calls();
+ }
+
if (m_parser.supportsOffsets()) {
unsigned frameIdx = currentFrame->number;
int numOfCalls = numberOfCallsInFrame(frameIdx);
void TraceLoader::findFrameStart(ApiTraceFrame *frame)
{
- loadFrame(frame);
+ if (!frame->isLoaded()) {
+ loadFrame(frame);
+ }
emit foundFrameStart(frame);
}
void TraceLoader::findFrameEnd(ApiTraceFrame *frame)
{
- loadFrame(frame);
+ if (!frame->isLoaded()) {
+ loadFrame(frame);
+ }
emit foundFrameEnd(frame);
}