blob: 8f886f1fe9a7ac6ec0f8d5472e902ab45a4b00ed [file] [log] [blame]
I quite frankly don't entirely understand this code, but exmap's debug
output on i586 and x86_64 pointed out these differences and this makes
it work.
--- exmap-0.10/src/Exmap.cpp.sav 2006-09-28 18:52:25.000000000 +0200
+++ exmap-0.10/src/Exmap.cpp 2010-01-02 17:45:49.787955568 +0100
@@ -450,7 +450,7 @@ void Vma::add_pages(const list<Page> &pa
bool Vma::is_vdso()
{
- return fname() == "[vdso]";
+ return fname() == "[vdso]" || fname() == "[vsyscall]";
}
bool Vma::is_file_backed()
@@ -1495,7 +1495,7 @@ bool MapCalculator::calc_map_for_seg(con
filevmas.pop_front();
dbg << pref.str() << "consuming vma\n";
- if (!filevmas.empty() && !filevmas.front()->is_file_backed()) {
+ while (!filevmas.empty() && !filevmas.front()->is_file_backed()) {
filevmas.pop_front();
dbg << pref.str() << "consuming anon vma\n";
}