projects
/
model-checker.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b8bcaaa
)
fix bug...this is another evil one...
author
Brian Demsky
<bdemsky@uci.edu>
Wed, 30 May 2012 07:18:44 +0000
(
00:18
-0700)
committer
Brian Norris
<banorris@uci.edu>
Wed, 30 May 2012 15:10:11 +0000
(08:10 -0700)
snapshot.cc
patch
|
blob
|
history
diff --git
a/snapshot.cc
b/snapshot.cc
index 7cea7d6191ca457b5c7b98cd1e45dc2c15596e22..e8fdadba28839df18728b42ab7194c46ec01989c 100644
(file)
--- a/
snapshot.cc
+++ b/
snapshot.cc
@@
-141,6
+141,15
@@
void initSnapShotLibrary(unsigned int numbackingpages,
}
initSnapShotRecord(numbackingpages, numsnapshots, nummemoryregions);
}
initSnapShotRecord(numbackingpages, numsnapshots, nummemoryregions);
+ // EVIL HACK: We need to make sure that calls into the HandlePF method don't cause dynamic links
+ // The problem is that we end up protecting state in the dynamic linker...
+ // Solution is to call our signal handler before we start protecting stuff...
+
+ siginfo_t si;
+ si.si_addr=ss.ss_sp;
+ HandlePF(SIGSEGV, &si, NULL);
+ snapshotrecord->lastBackingPage--; //remove the fake page we copied
+
basemySpace=MYMALLOC((numheappages+1)*PAGESIZE);
void * pagealignedbase=PageAlignAddressUpward(basemySpace);
mySpace = create_mspace_with_base(pagealignedbase, numheappages*PAGESIZE, 1 );
basemySpace=MYMALLOC((numheappages+1)*PAGESIZE);
void * pagealignedbase=PageAlignAddressUpward(basemySpace);
mySpace = create_mspace_with_base(pagealignedbase, numheappages*PAGESIZE, 1 );