diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2016-07-12 15:40:58 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2016-08-31 18:34:24 +0200 |
| commit | e30034c94f45a21959974a4e74bff4523dfb7fa1 (patch) | |
| tree | f2833bf0bdb13b6d6c84abb1204e3bf0f2740ac4 /miasm2/jitter/vm_mngr.c | |
| parent | eb25670f75d8e3b5231bde205035f65fa33f5da4 (diff) | |
| download | miasm-e30034c94f45a21959974a4e74bff4523dfb7fa1.tar.gz miasm-e30034c94f45a21959974a4e74bff4523dfb7fa1.zip | |
Jitter: opt write_num
Diffstat (limited to 'miasm2/jitter/vm_mngr.c')
| -rw-r--r-- | miasm2/jitter/vm_mngr.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/miasm2/jitter/vm_mngr.c b/miasm2/jitter/vm_mngr.c index 8df039b4..8022b32c 100644 --- a/miasm2/jitter/vm_mngr.c +++ b/miasm2/jitter/vm_mngr.c @@ -449,6 +449,7 @@ void add_mem_read(vm_mngr_t* vm_mngr, uint64_t addr, uint64_t size) void add_mem_write(vm_mngr_t* vm_mngr, uint64_t addr, uint64_t size) { add_range_to_pylist(vm_mngr->memory_w, addr, addr + size); + vm_mngr->write_num++; } void check_invalid_code_blocs(vm_mngr_t* vm_mngr) @@ -459,6 +460,9 @@ void check_invalid_code_blocs(vm_mngr_t* vm_mngr) struct code_bloc_node * cbp; uint64_t addr_start, addr_stop; + if (vm_mngr->write_num == 0) + return; + list_size = PyList_Size(vm_mngr->memory_w); LIST_FOREACH(cbp, &vm_mngr->code_bloc_pool, next){ @@ -493,6 +497,9 @@ void check_memory_breakpoint(vm_mngr_t* vm_mngr) uint64_t addr_start, addr_stop; struct memory_breakpoint_info * memory_bp; + if (vm_mngr->write_num == 0) + return; + /* Check Write memory breakpoint */ list_size = PyList_Size(vm_mngr->memory_w); LIST_FOREACH(memory_bp, &vm_mngr->memory_breakpoint_pool, next) { @@ -1537,6 +1544,7 @@ void init_code_bloc_pool(vm_mngr_t* vm_mngr) vm_mngr->memory_r = PyList_New(0); vm_mngr->memory_w = PyList_New(0); + vm_mngr->write_num = 0; } @@ -1583,6 +1591,8 @@ void reset_memory_access(vm_mngr_t* vm_mngr) reset_pylist(vm_mngr->memory_w); vm_mngr->memory_w = PyList_New(0); + vm_mngr->write_num = 0; + } void reset_memory_breakpoint(vm_mngr_t* vm_mngr) |