| 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"; |
| } |