diff --git a/src/backends/icicle-emulator/icicle_x86_64_emulator.cpp b/src/backends/icicle-emulator/icicle_x86_64_emulator.cpp index 001ccdd5..6f961db7 100644 --- a/src/backends/icicle-emulator/icicle_x86_64_emulator.cpp +++ b/src/backends/icicle-emulator/icicle_x86_64_emulator.cpp @@ -253,13 +253,6 @@ namespace icicle throw std::runtime_error("Not implemented"); } - emulator_hook* hook_edge_generation(edge_generation_hook_callback callback) override - { - // TODO - (void)callback; - throw std::runtime_error("Not implemented"); - } - emulator_hook* hook_interrupt(interrupt_hook_callback callback) override { auto obj = make_function_object(std::move(callback)); diff --git a/src/backends/unicorn-emulator/unicorn_x86_64_emulator.cpp b/src/backends/unicorn-emulator/unicorn_x86_64_emulator.cpp index 659e6d49..41932e54 100644 --- a/src/backends/unicorn-emulator/unicorn_x86_64_emulator.cpp +++ b/src/backends/unicorn-emulator/unicorn_x86_64_emulator.cpp @@ -176,17 +176,6 @@ namespace unicorn size_t size_{}; }; - basic_block map_block(const uc_tb& translation_block) - { - basic_block block{}; - - block.address = translation_block.pc; - block.instruction_count = translation_block.icount; - block.size = translation_block.size; - - return block; - } - void assert_64bit_limit(const size_t size) { if (size > sizeof(uint64_t)) @@ -456,29 +445,6 @@ namespace unicorn return result; } - emulator_hook* hook_edge_generation(edge_generation_hook_callback callback) override - { - function_wrapper wrapper( - [c = std::move(callback)](uc_engine*, const uc_tb* cur_tb, const uc_tb* prev_tb) { - const auto current_block = map_block(*cur_tb); - const auto previous_block = map_block(*prev_tb); - - c(current_block, previous_block); - }); - - unicorn_hook hook{*this}; - auto container = std::make_unique(); - - uce(uc_hook_add(*this, hook.make_reference(), UC_HOOK_EDGE_GENERATED, wrapper.get_function(), - wrapper.get_user_data(), 0, std::numeric_limits::max())); - - container->add(std::move(wrapper), std::move(hook)); - - auto* result = container->as_opaque_hook(); - this->hooks_.push_back(std::move(container)); - return result; - } - emulator_hook* hook_interrupt(interrupt_hook_callback callback) override { function_wrapper wrapper( diff --git a/src/emulator/hook_interface.hpp b/src/emulator/hook_interface.hpp index 3d268bbb..07340a65 100644 --- a/src/emulator/hook_interface.hpp +++ b/src/emulator/hook_interface.hpp @@ -63,7 +63,6 @@ class hook_interface virtual emulator_hook* hook_interrupt(interrupt_hook_callback callback) = 0; virtual emulator_hook* hook_memory_violation(memory_violation_hook_callback callback) = 0; - virtual emulator_hook* hook_edge_generation(edge_generation_hook_callback callback) = 0; virtual emulator_hook* hook_basic_block(basic_block_hook_callback callback) = 0; virtual void delete_hook(emulator_hook* hook) = 0;