You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When I used ICCBot as a dependency in my project, specifically while constructing and modifying the call graph, I noticed discrepancies in the generated call graph, with some critical methods (identified through manual analysis) being missed intermittently. After a module-by-module analysis, I found that the addEdgesByOurAnalyze (in the cgModify stage) correctly gets the edges related to these critical methods, but the final result still doesn't contain them.
In the addEdgesByOurAnalyze method, the callGraph.addEdge(e) operation does not seem properly synchronized in the multi-threaded environment. This lack of synchronization may result in the callGraph not being updated correctly, causing certain edges to be missed or not added at all.
Currently, I try to use synchronized to ensure that only one thread can update the callGraph at a time. This approach has yielded some positive results, as the final outcome includes the edges I hope to see.
synchronized (callGraph){
callGraph.addEdge(e);
}
I would greatly appreciate it if you have any better suggestions.
APK File
No response
Version of ICCBot
1.1-SNAPSHOT
Version of Java
OpenJDK 11.0.24
Relevant log output
No response
The text was updated successfully, but these errors were encountered:
Contact Details
No response
ICCBot Command Line
Technical Details
When I used ICCBot as a dependency in my project, specifically while constructing and modifying the call graph, I noticed discrepancies in the generated call graph, with some critical methods (identified through manual analysis) being missed intermittently. After a module-by-module analysis, I found that the
addEdgesByOurAnalyze
(in the cgModify stage) correctly gets the edges related to these critical methods, but the final result still doesn't contain them.In the
addEdgesByOurAnalyze
method, thecallGraph.addEdge(e)
operation does not seem properly synchronized in the multi-threaded environment. This lack of synchronization may result in thecallGraph
not being updated correctly, causing certain edges to be missed or not added at all.Currently, I try to use
synchronized
to ensure that only one thread can update thecallGraph
at a time. This approach has yielded some positive results, as the final outcome includes the edges I hope to see.I would greatly appreciate it if you have any better suggestions.
APK File
No response
Version of ICCBot
1.1-SNAPSHOT
Version of Java
OpenJDK 11.0.24
Relevant log output
No response
The text was updated successfully, but these errors were encountered: