-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
will support other platform such as ARM? #27
Comments
Hi, I would like to make an additional port on top of DynamoRIO which provide mostly the same thing but free/open-source and available for both x86 and ARM. (see #5). My problem, I currently do not have enougth continuous time to make this kind of work. But if ever you know someone or you are interested I will be more than happy to take time to assist/guide/help making it. In principle DyanmoRIO offer a very similar API approach than Pin except less predefine functions to intercept Load/Stores, this just require a little bit more codes but there is exemples in there doc for what we need in theory, I already looked for that. If we have DynamoRIO, there should be mostly nothing extra to change to support ARM for the rest of the code except really minor things I can for sure do by myself. It will be also really nice as it removed the strong dependency on Pin which is not open. Cheers. |
I can make a course to help starting if it is interesting. |
hello, sounds good. where can someone start from? |
Hi, The main things to be done is to convert the Pin instrumentation glue to make the same into DynamoRIO. The only point is such there is a bit more automation for load/store interception in Pin which require a bit more code (not too much, and there is the required bases in examples). So if ever you want to start or someone one, I would first:
Then look for equivalent in DyanmoRIO which also have pretty nice doc: http://dynamorio.org/. For the NUMAPROF case, the requirement is to:
From this you might get all the points to make the wrapper to replace the pin glue. To make the work easier I would first run totaly outside of NUMAPROF just making an interception script writing events into a file as text to debug start making working, then we can look together to glue everything, there should not be too much work once the interception is done, this is the most hard part. I can start a project board with tasks ordered in ways to make life easier if you want I track progress to help when needed, this will be with pleasure to share knowledge. |
nice, very useful info. i will read your numaprof document&code , try to get a whole picture. |
hello,I am very interested in converting Pin instrument glue to DynamoRIO to enable NUMAPROF to support ARM. However, DynamoRIO's API is quite complex, and I would like to know if you can provide more detailed courses to replace pin glue. |
Hi @ismeFUFU , sorry for the long delay to answer. I would say that you can first me some tries as explain in the previous pose outside of numaprof. For me the first point is :
Once you have this, the rest is makeing the glue with the numaprof internal lib which might not be blocking as the API is short. |
Remark that the first steps you can do totaly out of numaprof, just making an instrumentation file standalone. In code reading, as said in the older comment, the good start is to see if you understand this as it will be probably the most harder part to play put in place in the wrapper (intercepting the load/stores) : https://github.com/DynamoRIO/dynamorio/blob/master/api/samples/memtrace_x86.c |
hello
will support other platform such as ARM?
The text was updated successfully, but these errors were encountered: