drcfg
drcfg copied to clipboard
you might not like this pull request ...
because it eliminates most parts of your code.
I did this because of #1 which led me to https://github.com/DynamoRIO/dynamorio/issues/2919
and boiled down to this solution which makes it work on all platforms and is even a bit faster.
plus the locations are not reported in hex not decimal.
and -txt command line option added.
Thanks for the PR! I wrote this a long time ago when I was first getting my feet wet with DynamoRIO, so I suspect that there are many improvements that could be made. This is a big PR so I'll be taking a look at it over the course of a few days :)
dynamorio is jumping from instruction 0x400085 to 0x40008e without processing again the basic block 400087-40008A. and that is why 40008A=>40008E is missing.
the question is now why.
# wc -l after.txt before.txt
20320 after.txt
20325 before.txt
here it seems (that is my unrar test) that 5 branch destinations are lost which is 0.00025% . that is a very small number. so maybe could it be that dynamorio tries to be efficient and jumps over blocks if it is near the exit of the program? in other words maybe the destination would not be lost if the would be more branches after 0x40008E? still it would mean loosing a few branches (for me I would not mind as in the real world that is libc cleanup which is not interesting).
sigh it seems I have to dig deeper. if it is not like I hope, then it needs implementing the dr_insert_ ... function