mirror of
https://github.com/Vita3K/unicorn.git
synced 2024-11-27 07:10:45 +00:00
when block size is unknown because the translation cache is full, assign it value 0
This commit is contained in:
parent
c3e95ec34e
commit
39d3856871
@ -121,7 +121,7 @@ typedef enum uc_err {
|
||||
|
||||
// Callback function for tracing code (UC_HOOK_CODE & UC_HOOK_BLOCK)
|
||||
// @address: address where the code is being executed
|
||||
// @size: size of machine instruction being executed
|
||||
// @size: size of machine instruction(s) being executed, or 0 when size is unknown
|
||||
// @user_data: user data passed to tracing APIs.
|
||||
typedef void (*uc_cb_hookcode_t)(uch handle, uint64_t address, uint32_t size, void *user_data);
|
||||
|
||||
|
@ -179,8 +179,10 @@ static int cpu_gen_code(CPUArchState *env, TranslationBlock *tb, int *gen_code_s
|
||||
gen_intermediate_code(env, tb);
|
||||
|
||||
// Unicorn: when tracing block, patch 1st operand for block size
|
||||
if (env->uc->hook_block) {
|
||||
if (env->uc->block_addr == tb->pc)
|
||||
if (env->uc->hook_block && env->uc->block_addr == tb->pc) {
|
||||
if (env->uc->block_full) // block size is unknown
|
||||
*(s->gen_opparam_buf + 1) = 0;
|
||||
else
|
||||
*(s->gen_opparam_buf + 1) = tb->size;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user