Nguyen Anh Quynh
90eb8f2e72
This commit continues the PR #111
...
- Allow to register handler separately for invalid memory access
- Add new memory events for hooking:
- UC_MEM_READ_INVALID, UC_MEM_WRITE_INVALID, UC_MEM_FETCH_INVALID
- UC_HOOK_MEM_READ_PROT, UC_HOOK_MEM_WRITE_PROT, UC_HOOK_MEM_FETCH_PROT
- Rename UC_ERR_EXEC_PROT to UC_ERR_FETCH_PROT
- Change API uc_hook_add() so event type @type can be combined from hooking types
2015-09-24 14:18:02 +08:00
Sean Heelan
dfb4a9d9ad
Revert "Remove uc_cb_eventmem_t as it is identical to uc_cb_hookmem_t"
...
As pointed out by aquynh the return types are actually different. A
uc_cb_eventmem_t callback returns a bool, while uc_cb_hookmem_t has a
void return type.
This reverts commit cb2b97f26c
.
2015-09-23 12:51:47 +07:00
Sean Heelan
cb2b97f26c
Remove uc_cb_eventmem_t as it is identical to uc_cb_hookmem_t, as per
...
issue #111
2015-09-22 12:37:05 +07:00
Nguyen Anh Quynh
14a01b5186
mips: handle delay slot so do not duplicate calling instruction handler. this fixes issue #133
2015-09-22 11:59:53 +08:00
Nguyen Anh Quynh
a853eb6363
mips, m68k: early check to see if the address of BB is the until address
2015-09-22 10:24:26 +08:00
danghvu
0c67f41ed9
Fix issue #118
2015-09-21 20:30:05 -05:00
Nguyen Anh Quynh
d7d4be25b1
arm64: early check to see if the address of this block is the until address
2015-09-21 10:26:33 +08:00
Nguyen Anh Quynh
9aa04d9496
tb_gen_code(): only check to link next page if tb->size > 0 (so we skip empty block)
2015-09-20 00:05:17 +07:00
Nguyen Anh Quynh
5005b4a6e2
arm: early check to see if the address of this block is the until address
2015-09-17 09:16:57 +07:00
Nguyen Anh Quynh
d6b9c31dc9
sparc: more cleanup
2015-09-16 16:04:12 +07:00
mothran
893e6abcbd
first atttempt at SPARC64 fixes, no longer SEGV's, set CPU model to: Sun UltraSparc IV
2015-09-15 23:12:03 -07:00
mothran
f4894a1c77
removed unneed cases in the switch statement
2015-09-14 20:44:50 -07:00
mothran
6b521e9e9b
update the sparc reg read/write to include o/l/i registers
2015-09-14 20:03:32 -07:00
mothran
7dc41a8e4e
update the regwptr upon reset
2015-09-13 18:10:28 -07:00
mothran
657a6c3e25
modified the sparc reg get/set functions to use the current reg window ptr
2015-09-12 10:29:35 -07:00
mothran
afecfee565
added SPARC sp / fp registers, also updated uint32_t's to uint64_t's in SPARC64
2015-09-10 23:20:52 -07:00
Nguyen Anh Quynh
d7ef204398
rename error codes ERR_MEM_READ, ERR_MEM_WRITE, ERR_MEM_FETCH
2015-09-09 16:25:48 +08:00
Nguyen Anh Quynh
d3d38d3f21
handle read/write/fetch from unaligned addresses. this adds new error codes UC_ERR_READ_UNALIGNED, UC_ERR_WRITE_UNALIGNED & UC_ERR_FETCH_UNALIGNED
2015-09-09 15:52:15 +08:00
Nguyen Anh Quynh
18b6680e96
mips: disable debug output
2015-09-08 23:56:25 +08:00
Nguyen Anh Quynh
7a5d790ade
rename UC_MEM_EXE to UC_MEM_FETCH
2015-09-08 12:55:56 +08:00
Nguyen Anh Quynh
c1dd9fbfdf
arm64: handle SP register. this fixes issue #122
2015-09-08 08:40:42 +08:00
Nguyen Anh Quynh
6c132bc673
arm: fix #114 by enabling cortex-a15 model. FIXME: enable this on demand with an API
2015-09-08 01:08:37 +08:00
Nguyen Anh Quynh
3ac8615cbb
arm: handle invalid instruction. this fixes issue #114
2015-09-08 00:43:09 +08:00
Nguyen Anh Quynh
9e4ed32e8a
x86: handle SYSCALL even if there is no handler
2015-09-07 10:19:45 +08:00
Nguyen Anh Quynh
a166c24f8e
x86: correct EIP of INT instruction by updating it only after calling interrupt handler
2015-09-06 14:58:11 +08:00
Chris Eagle
e9c6b11506
add mem_api sample program and fix check for wrong NX related constant in cputlb.c
2015-09-04 10:27:03 -07:00
Chris Eagle
8cfd902e4b
Move mem_xxx samples to regress. Add check to only flush tlb when unmapping if there is a current cpu
2015-09-04 00:48:24 -07:00
Nguyen Anh Quynh
022f8d82d1
handle memory fetch as invalid memory access. now we can also report error if exec memory is unmapped (UC_ERR_MEM_FETCH)
2015-09-04 11:55:17 +08:00
Nguyen Anh Quynh
84e3b5c897
cast all the values to write to registers in uc_reg_write() to unsigned type. this fixes issue #98
2015-09-04 11:17:08 +08:00
Jonathon Reinhart
da46071c7d
bring new code and samples up-to-date with API changes
2015-09-03 22:15:49 -04:00
Jonathon Reinhart
5e9d07a40a
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
2015-09-03 22:01:52 -04:00
Chris Eagle
2da46caef7
smooth out split_region related code
2015-09-03 12:26:36 -07:00
Nguyen Anh Quynh
6ca85a72ed
simplify uc_mem_protect() & uc_mem_unmap()
2015-09-04 01:02:38 +08:00
Nguyen Anh Quynh
9f9d57e84f
cleaning & indentation
2015-09-03 18:16:49 +08:00
Nguyen Anh Quynh
b8d4240240
solve merging conflict
2015-09-03 18:05:21 +08:00
Jonathon Reinhart
bd0a6921cc
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
2015-09-02 21:04:43 -04:00
Nguyen Anh Quynh
be659d201d
fix confusion betweet UC_MEM_xxx & UC_HOOK_MEM_xxx. fix issue #93
2015-09-03 01:13:57 +08:00
Nguyen Anh Quynh
2d9db36a2b
fix some errors introduced by the last commit on qemu-thread-win32.c
2015-09-02 01:34:23 -07:00
Nguyen Anh Quynh
8b39ec5b0c
initial support to remove a static variable in qemu-thread-win32.c
2015-09-02 16:13:12 +08:00
Nguyen Anh Quynh
a94e31165d
x86: fix issue #95
2015-09-02 12:00:43 +08:00
Ryan Hileman
db8f499fe9
fix crash on some SSE instructions
2015-09-01 19:12:51 -07:00
Chris Eagle
49d1fa7ebd
Merge branch 'master' into mem_map_ex_cse
2015-09-01 12:13:53 -07:00
Chris Eagle
2c4f3769d4
clean up mem_protect related constants and error codes
2015-09-01 12:10:09 -07:00
Jonathon Reinhart
2c802a3e4b
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
...
# Conflicts:
# qemu/target-i386/unicorn.c
2015-09-01 13:17:03 -04:00
Nguyen Anh Quynh
90fc201f8d
x86: enable bunch of instructions via CPUID. this fixes issue #91
2015-09-02 00:16:45 +08:00
Chris Eagle
73027026ce
Merge branch 'master' into mem_map_ex_cse
2015-08-31 23:49:54 -07:00
Chris Eagle
658e399776
clean up mem_protect related constants
2015-08-31 19:08:48 -07:00
Nguyen Anh Quynh
bea73ef213
stop emulation when hitting invalid code address. this fixes issue #82
2015-09-01 00:17:55 +08:00
Chris Eagle
b27e987932
Add target_page_size member to uc_struct to track TARGET_PAGE_SIZE
2015-08-31 01:00:44 -07:00
Chris Eagle
410e317e92
dont use explicit page size, use TARGET_PAGE_SIZE
2015-08-30 21:24:14 -07:00