CURRENT STATUS :

analyzer is now splitting nodes even at call sites which doesn’t have a 
cgraph_edge. But as now the call and return nodes are not connected, the part 
of the function after such calls becomes unreachable making them impossible to 
properly analyse.

AIM for today : 

- try to create an intra-procedural link between the calls the calling and 
returning snodes 
- find the place where the exploded nodes and edges are being formed 
- figure out the program point where exploded graph would know about the 
function calls

—

PROGRESS :

- I initially tried to connect the calling and returning snodes with an 
intraprocedural sedge but looks like for that only nodes which have a 
cgraph_edge or a CFG edge are connected in the supergraph. I tried a few ways 
to connect them but at the end thought I would be better off leaving them like 
this and connecting them during the creation of exploded graph itself.

- As the exploded graph is created during building and processing of the 
worklist, "build_initial_worklist ()” and “process_worklist()” should be the 
interesting areas to analyse, especially the processing part.

- “build_initial_worklist()” is just creating enodes for functions that can be 
called explicitly ( possible entry points ) so I guess the better place to 
investigate is “process_worklist ()” function.

—

STATUS AT THE END OF THE DAY :- 

- try to create an intra-procedural link between the calls the calling and 
returning snodes ( Abandoned )
- find the place where the exploded nodes and edges are being formed ( Done )
- figure out the program point where exploded graph knows about the function 
call ( Pending )


Thank you
- Ankur

Reply via email to