Skip to content

Commit 2fb4b02

Browse files
committed
Added results for Ser1
1 parent 5fc87fa commit 2fb4b02

File tree

10 files changed

+45
-9
lines changed

10 files changed

+45
-9
lines changed

callgraphs/README.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,33 @@
22

33

44
This folder contains the visualization of the call graphs computed by `Salsa`.
5-
Each PDF provides the call graph computed with and without Salsa, where we can see missing edges and nodes from the call graph.
65

7-
Please notice that each PDF has only a **subset** of nodes and edges from the original call graph because each call graph includes many nodes from API calls.
8-
For the sake of clarity, each PDF only includes nodes and edges if they fulfill the following criteria:
6+
- Each PDF provides the call graph computed with and without Salsa, where we can see missing edges and nodes from the call graph.
7+
- Nodes in light green are *application nodes*, nodes in light orange are *primordial nodes*, and underlined nodes are *synthetic nodes* added by Salsa to handle the call backs during serialization/deserialization;
8+
- Each node is preceded by an `id` number to avoid labels to be duplicated (when a same method is invoked multiple times in an application).
9+
- Please notice that each PDF has only a **subset** of nodes and edges from the original call graph because each call graph includes many nodes from API calls.
910

10-
***For nodes***:
11+
For the sake of clarity, each PDF only includes nodes and edges if they fulfill the following criteria:
12+
13+
***For nodes***:
14+
15+
- The node correspond to a method implemented by the application (application-scope);
16+
- The node is non-application (i.e., primordial or extension), but it has a call back edge to an application node;
17+
18+
19+
***For edges***:
20+
21+
- All the outgoing edges from application nodes;
22+
- All the outgoing edges from non-application nodes but wholse target is an application node (or is in a path that will lead to a call back to the application);
1123

12-
- The node correspond to a method implemented by the application (application-scope);
13-
- The node is non-application (i.e., primordial or extension), but it has a call back edge to an application node;
1424

1525

16-
***For edges***:
17-
- All the outgoing edges from application nodes;
18-
- All the outgoing edges from non-application nodes but wholse target is an application node (or is in a path that will lead to a call back to the application);
1926

27+
## Test Cases
2028

29+
### Ser1
30+
31+
- **Expected Output**: It expects a direct call from `ser.Demo.writeObject` to
32+
`java.io.ObjectOutputStream.defaultWriteObject`.
33+
34+
- **Actual Output**:![]()

callgraphs/Ser1-JRE1.8.jar.dot

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
digraph G {
2+
rankdir=LR;
3+
graph[label="Call graph view for Ser1-JRE1.8.jar"];
4+
node[style=filled,fillcolor ="white",shape=box,margin=0.02,width=0,height=0];
5+
"4_Object.<init>()"[fillcolor=peachpuff,color=salmon2];
6+
"5_Demo.main(String[])"[fillcolor=palegreen,color=darkseagreen];
7+
"8_Demo.<init>()"[fillcolor=palegreen,color=darkseagreen];
8+
"10_FileOutputStream.<init>(String)"[fillcolor=peachpuff,color=salmon2];
9+
"12_ObjectOutputStream.<init>(OutputStream)"[fillcolor=peachpuff,color=salmon2];
10+
"14_salsa.model.ObjectOutputStream.writeObject(Object)"[shape=underline,fillcolor=white,color=darkslategray];
11+
"15_ObjectOutputStream.close()"[fillcolor=peachpuff,color=salmon2];
12+
"410_Demo.writeObject(ObjectOutputStream)"[fillcolor=palegreen,color=darkseagreen];
13+
"411_ObjectOutputStream.defaultWriteObject()"[fillcolor=peachpuff,color=salmon2];
14+
"5_Demo.main(String[])" -> "8_Demo.<init>()";
15+
"5_Demo.main(String[])" -> "10_FileOutputStream.<init>(String)";
16+
"5_Demo.main(String[])" -> "12_ObjectOutputStream.<init>(OutputStream)";
17+
"5_Demo.main(String[])" -> "14_salsa.model.ObjectOutputStream.writeObject(Object)";
18+
"5_Demo.main(String[])" -> "15_ObjectOutputStream.close()";
19+
"8_Demo.<init>()" -> "4_Object.<init>()";
20+
"14_salsa.model.ObjectOutputStream.writeObject(Object)" -> "410_Demo.writeObject(ObjectOutputStream)";
21+
"410_Demo.writeObject(ObjectOutputStream)" -> "411_ObjectOutputStream.defaultWriteObject()";
22+
}

callgraphs/Ser1-JRE1.8.jar.pdf

19.5 KB
Binary file not shown.

callgraphs/Ser1-JRE1.8.jar.png

65.8 KB
Loading

jars/Ser1-JRE1.8.jar

101 Bytes
Binary file not shown.

jars/Ser2-JRE1.8.jar

-1.48 KB
Binary file not shown.

jars/Ser3-JRE1.8.jar

-1.08 KB
Binary file not shown.

jars/Ser4-JRE1.8.jar

-1.04 KB
Binary file not shown.

jars/Ser5-JRE1.8.jar

-1.04 KB
Binary file not shown.

jars/Ser9-JRE1.8.jar

-1.42 KB
Binary file not shown.

0 commit comments

Comments
 (0)