summaryrefslogtreecommitdiffstats
path: root/app/perfelfmap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/perfelfmap.cpp')
-rw-r--r--app/perfelfmap.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/app/perfelfmap.cpp b/app/perfelfmap.cpp
index 54e9e1e..5fad1ee 100644
--- a/app/perfelfmap.cpp
+++ b/app/perfelfmap.cpp
@@ -121,10 +121,14 @@ void PerfElfMap::registerElf(quint64 addr, quint64 len, quint64 pgoff,
ElfInfo elf(fullPath, addr, len, pgoff, originalFileName, originalPath);
- if (!pgoff)
- m_lastBase = elf;
- else if (m_lastBase.originalPath == originalPath)
- elf.baseAddr = m_lastBase.addr;
+ if (elf.isFile()) {
+ if (m_lastBase.originalPath == originalPath && elf.addr > m_lastBase.addr)
+ elf.baseAddr = m_lastBase.addr;
+ else if (!pgoff)
+ m_lastBase = elf;
+ else
+ m_lastBase = ElfInfo();
+ }
newElfs.push_back(elf);