Hello,
I am a newbie here. Apologies if this is not the right group for the below message.
I am one of the developers of a static program analysis/slicer tool called atom (Apache-2.0). Atom uses the popular joern library (which internally uses Eclipse CDT for c/c++).
https://github.com/AppThreat/atomWith atom, it is possible to generate an intermediate representation for a project and then slice it into two modes - usages and data-flow. This is discussed in the below document.
https://github.com/AppThreat/atom/blob/main/specification/docs/slices.mdWe recently improved the performance of generating atom to support large code bases like v8. It is possible to produce the usages slice in around 18 minutes using the below commands.
## Prerequisites
Ensure java >= 17 is installed
Download atom from
https://github.com/AppThreat/atom/releases```shell
unzip atom.zip
cd atom-1.0.0/bin
./atom -J-Xms40g -J-Xmx40g usages --slice-outfile usages.json -o app.atom --language c <path to v8>/src
```
## Proposal
The information in the usages slice, such as locations, signature, and type can be used to improve testing and fuzzing of projects like v8. I am unsure if this is an area actively explored here, but we would love to discuss further if this is useful.
The link below is a gzipped version of the usages slice json generated today for convenience.
Best,
Prabhu