diff --git a/gum/backend-x86/gumstalker-x86.c b/gum/backend-x86/gumstalker-x86.c index a7e04c9238..64bff1653a 100644 --- a/gum/backend-x86/gumstalker-x86.c +++ b/gum/backend-x86/gumstalker-x86.c @@ -3166,6 +3166,15 @@ gum_stalker_iterator_keep (GumStalkerIterator * self) self->requirements = requirements; } +void +gum_stalker_iterator_put_chaining_return (GumStalkerIterator * self) +{ + GumExecBlock * block = self->exec_block; + GumGeneratorContext * gc = self->generator_context; + + gum_exec_block_virtualize_ret_insn (block, gc); +} + GumMemoryAccess gum_stalker_iterator_get_memory_access (GumStalkerIterator * self) { diff --git a/gum/gumstalker.h b/gum/gumstalker.h index 11735d2e2c..4bcf3e2a23 100644 --- a/gum/gumstalker.h +++ b/gum/gumstalker.h @@ -227,6 +227,7 @@ GUM_API GumMemoryAccess gum_stalker_iterator_get_memory_access ( GumStalkerIterator * self); GUM_API void gum_stalker_iterator_put_callout (GumStalkerIterator * self, GumStalkerCallout callout, gpointer data, GDestroyNotify data_destroy); +GUM_API void gum_stalker_iterator_put_chaining_return (GumStalkerIterator * self); GUM_API csh gum_stalker_iterator_get_capstone (GumStalkerIterator * self); #define GUM_DECLARE_OBSERVER_INCREMENT(name) \