projects
/
mate.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
codegen: handle exceptions of a method
[mate.git]
/
Mate
/
X86TrapHandling.hs
diff --git
a/Mate/X86TrapHandling.hs
b/Mate/X86TrapHandling.hs
index b4bf8ca2b5eaa536e36e58fd7b198128546acbd1..82ed7ca0d738ca3ad52b1a0f23562ac8ae0e9597 100644
(file)
--- a/
Mate/X86TrapHandling.hs
+++ b/
Mate/X86TrapHandling.hs
@@
-41,7
+41,7
@@
mateHandler reip reax rebx resi resp = do
(Just (InstanceOf patcher)) ->
patchWithHarpy (patcher reax) reip >>= delFalse
(Just (ThrowException patcher)) ->
(Just (InstanceOf patcher)) ->
patchWithHarpy (patcher reax) reip >>= delFalse
(Just (ThrowException patcher)) ->
- patchWithHarpy (patcher resp) reip >>= delFalse
+ patchWithHarpy (patcher re
ax re
sp) reip >>= delFalse
(Just (NewObject patcher)) ->
patchWithHarpy patcher reip >>= delTrue
(Just (VirtualCall False mi io_offset)) ->
(Just (NewObject patcher)) ->
patchWithHarpy patcher reip >>= delTrue
(Just (VirtualCall False mi io_offset)) ->
@@
-52,8
+52,8
@@
mateHandler reip reax rebx resi resp = do
>>= delFalse
Nothing -> case resi of
0x13371234 -> delFalse (-1)
>>= delFalse
Nothing -> case resi of
0x13371234 -> delFalse (-1)
- _ -> error $ "getTrapType: abort :-(
" ++ showHex reip ".
"
- ++ concatMap (`showHex` ", ") (M.keys tmap)
+ _ -> error $ "getTrapType: abort :-(
eip:
"
+ ++
showHex reip ". " ++
concatMap (`showHex` ", ") (M.keys tmap)
when deleteMe $ setTrapMap $ M.delete reipw32 tmap
return ret_nreip
where
when deleteMe $ setTrapMap $ M.delete reipw32 tmap
return ret_nreip
where