diff options
Diffstat (limited to 'app/perfelfmap.cpp')
-rw-r--r-- | app/perfelfmap.cpp | 12 |
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); |