return QVariant();
}
switch (static_cast<Columns>(section)) {
- case LocationColumn:
- return tr("Location");
+ case FileColumn:
+ return tr("File");
+ case FunctionColumn:
+ return tr("Function");
+ case ModuleColumn:
+ return tr("Module");
case AllocationsColumn:
return tr("Allocations");
case PeakColumn:
return static_cast<quint64>(allocation.leaked);
case AllocatedColumn:
return static_cast<quint64>(allocation.allocated);
- case LocationColumn:
+ case FileColumn:
+ case ModuleColumn:
+ case FunctionColumn: {
+ const auto& ip = m_data.findIp(allocation.ipIndex);
+ if (index.column() == FunctionColumn) {
+ if (ip.functionIndex) {
+ return QString::fromStdString(m_data.prettyFunction(m_data.stringify(ip.functionIndex)));
+ } else {
+ return QLatin1String("0x") + QString::number(ip.instructionPointer, 16);
+ }
+ } else if (index.column() == ModuleColumn) {
+ return QString::fromStdString(m_data.stringify(ip.moduleIndex));
+ } else if (ip.fileIndex) {
+ auto file = QString::fromStdString(m_data.stringify(ip.fileIndex));
+ return file + QLatin1Char(':') + QString::number(ip.line);
+ }
return QVariant();
+ }
case NUM_COLUMNS:
break;
}