For better precision, we need interprocedural analysis: propagate data-flow information along interprocedural control-flow edges (i.e., call and return edges).

So far, all analysis we learnt are intraprocedural, How to deal with method calls?

spaces_-MJC1RRYQ991XoNX219t_uploads_git-blob-30e05704388959e4804b0c5f105c23fbfe4b5f3d_Ex4-1.png

Call Graph Construction (CHA)

A representation of calling relationships in the program. Essentially, a call graph is a set of call edges from call-sites to their target methods (callees).

spaces_-MJC1RRYQ991XoNX219t_uploads_git-blob-1faa152295dbc04f928f7be56941070005d34fb4_Ex4-2.png

Call Graph Construction for OOPLs (focus on Java).

spaces_-MJC1RRYQ991XoNX219t_uploads_git-blob-9d35d903239a08b3c837b985ab1033e4d80f5065_Ex4-3.png

Methods Calls (Invocations) in Java.

屏幕截图 2022-07-30 105119.png