Disabling tramp guards certainly works if you really know that you're
not recursing. That can be subtle and error prone, which is why tramp
guards were invented. Proceed cautiously here.
--bart
On 2/3/2015 12:02 PM, Matthew LeGendre wrote:
Another possible fix may be to disable tramp guards. Tramp guards are
used to prevent recursive instrumentation. For example, if you
instrument malloc() with instrumentation that calls malloc(), then
tramp guards will prevent you from going into infinite recursion.
If you already know that your instrumentation can't infinitely recurse,
then disabling tramp guards will give a big performance win and may
work around this hang. To disable tramp guards, put a call to
BPatch::setTrampRecursive(true) before you insert instrumentation.
-Matt
_______________________________________________
Dyninst-api mailing list
Dyninst-api@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
|