<div dir="ltr"><p style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 14px;">For example, I have a dependency (called D1) in my project(called P) and invoke a method of D1(called D1.M1) in a method of project(called P.M), by using soot, I can get the callgraph edge(P.M->D1.M1).<br style="box-sizing: border-box;">And D1.M1 invoke a method of another dependency(called D2.M2), how can I get the edge(P.M->D1.M1->D2.M2)<br style="box-sizing: border-box;">Now my code is below:</p><div class="highlight highlight-source-java" style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 14px; overflow: visible !important;"><pre style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; overflow-wrap: normal; padding: 16px; overflow: auto; line-height: 1.45; background-color: rgb(246, 248, 250); border-radius: 6px; word-break: normal;">argsList<span class="pl-k" style="box-sizing: border-box; color: rgb(215, 58, 73);">.</span>addAll(<span class="pl-smi" style="box-sizing: border-box;">Arrays</span><span class="pl-k" style="box-sizing: border-box; color: rgb(215, 58, 73);">.</span>asList(<span class="pl-k" style="box-sizing: border-box; color: rgb(215, 58, 73);">new</span> <span class="pl-smi" style="box-sizing: border-box;">String</span>[]{
<span class="pl-c" style="box-sizing: border-box; color: rgb(106, 115, 125);"><span class="pl-c" style="box-sizing: border-box;">//</span>                "-android-jars", "/Users/huangkaifeng/Desktop/SootExec/android.jar",</span>
                <span class="pl-s" style="box-sizing: border-box; color: rgb(3, 47, 98);"><span class="pl-pds" style="box-sizing: border-box;">"</span>-allow-phantom-refs<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
                <span class="pl-s" style="box-sizing: border-box; color: rgb(3, 47, 98);"><span class="pl-pds" style="box-sizing: border-box;">"</span>-w<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
                <span class="pl-s" style="box-sizing: border-box; color: rgb(3, 47, 98);"><span class="pl-pds" style="box-sizing: border-box;">"</span>-keep-line-number<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: rgb(3, 47, 98);"><span class="pl-pds" style="box-sizing: border-box;">"</span>enabled<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
                <span class="pl-c" style="box-sizing: border-box; color: rgb(106, 115, 125);"><span class="pl-c" style="box-sizing: border-box;">//</span> "-no-bodies-for-excluded",</span>
                <span class="pl-s" style="box-sizing: border-box; color: rgb(3, 47, 98);"><span class="pl-pds" style="box-sizing: border-box;">"</span>-cp<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, libsAll,
                <span class="pl-s" style="box-sizing: border-box; color: rgb(3, 47, 98);"><span class="pl-pds" style="box-sizing: border-box;">"</span>-process-dir<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
                classesPath1, <span class="pl-s" style="box-sizing: border-box; color: rgb(3, 47, 98);"><span class="pl-pds" style="box-sizing: border-box;">"</span>-p<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: rgb(3, 47, 98);"><span class="pl-pds" style="box-sizing: border-box;">"</span>jb<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: rgb(3, 47, 98);"><span class="pl-pds" style="box-sizing: border-box;">"</span>use-original-names:true<span class="pl-pds" style="box-sizing: border-box;">"</span></span>}));<span class="pl-c" style="box-sizing: border-box; color: rgb(106, 115, 125);"><span class="pl-c" style="box-sizing: border-box;">//</span>classPath1 is the path of D1</span></pre></div><p style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 14px;">I tried to use <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; background-color: rgba(27, 31, 35, 0.05); border-radius: 6px;">"-process-dir",classesPath1,classPath2 //classPath2 is the path of D2</code> but failed to get the edge of D1.M1->D2.M2. Can soot generate the complete callgraph of transitive dependency?</p><p style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 14px;">Thank you for your help.</p></div>