I am trying to find the normal behavior of an application. I want to find out what parts of the kernel code and data structure are used by an application.
I know there are many dynamic analysis tools, such as strace, KFI,GCOV,LTT and so on. But the drawback of dynamic analysis tools is that it can not prove to be complete. It works well for profiling and performance tuning, but not for fully understanding an application behavior.
So my question is if there are some similar static tools which can find out following:
1) system calls used by an application
2) kernel functions used by that application
3) kernel data structures used by the application.
4) Code graph of the kernel and the data that is used by the functions.
I understand that there might be no such tools. But there might be some related tools so I can change it a little bit.