summaryrefslogtreecommitdiff
blob: 8f886f1fe9a7ac6ec0f8d5472e902ab45a4b00ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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";
     }