Hello, all.

I am trying to find some way for detection of function's entry and
exit analyzing binary at runtime. It is possible to use Valgrind
(www.valgrind.org) and detect all Basic Blocks (1 entry, multiple
exits) that correspond to entry\exit of function.

As far as I understand, at the start of new function according to
calling conventions of ARM we have return address in LR (r14). And if
I will save LR at some place and then compare the address for each BB
with saved LR I can find return from function.

And my main question is it possible to rely on this fact when
compiling with gcc and different levels of optimizations? Is it
possible to generate some straightforward heuristic to detect this
evens (with\without debug info)?

Thank you in advance for any suggestions!

-- 
Best Regards,
Vasily

Reply via email to