<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Microsoft YaHei";
        panose-1:2 11 5 3 2 2 4 2 2 4;}
@font-face
        {font-family:"\@Microsoft YaHei";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert Zchn";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.HTMLVorformatiertZchn
        {mso-style-name:"HTML Vorformatiert Zchn";
        mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert";
        font-family:Consolas;}
span.E-MailFormatvorlage24
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.E-MailFormatvorlage25
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi Jing,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I don’t know if you used the constructor InfoflowCFG() to get your instance, if it is the case, the ICFG uses JimpleBasedInterproceduralCFG as default and this requires that the call graph must be built at first. You
 can try to get the call graph by using Scene.v().getCallGraph() and make sure it is created.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Ps. Next time please send soot-related questions to the mailing list such that other people who has the same question can see it too.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Best,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Linghui Luo<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">_________________________________<o:p></o:p></p>
<p class="MsoNormal"><span style="color:black">M. Sc. Linghui Luo <b><o:p></o:p></b></span></p>
<p class="MsoNormal"><b><span style="color:black"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:black;background:white">Wissenschaftliche Mitarbeiterin/Research assistant<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:black;background:white">Fachgruppe Softwaretechnik</span><span style="font-size:10.0pt;color:black"><br>
<span style="background:white">Heinz Nixdorf Institut</span><br>
<span style="background:white">Universität Paderborn</span><br>
<span style="background:white">Fürstenallee 11</span><br>
<span style="background:white">33102 Paderborn<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:black;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:black;background:white">E-Mail:
</span><span style="font-size:10.0pt;color:#0070C0;background:white"><a href="mailto:linghui.luo@uni-paderborn.de">linghui.luo@uni-paderborn.de</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:black;background:white">Telefon: +49 5251 606568<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:black;background:white">Raum: F1.119<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:black;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal">_________________________________<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b>Von:</b> <span lang="ZH-CN" style="font-family:"Microsoft YaHei",sans-serif">
张婧</span> <m201672947@hust.edu.cn> <br>
<b>Gesendet:</b> Mittwoch, 14. März 2018 04:59<br>
<b>An:</b> Linghui Luo <linghui.luo@uni-paderborn.de><br>
<b>Betreff:</b> Re: AW: Ask Help for Soot<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<pre><span style="font-size:10.5pt">Hi Linghui Luo,</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt">Thank you for your reply.</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt">Can I ask you another question?</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt">Demo code :</span><o:p></o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">    function a(){</span><o:p></o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">        ……</span><o:p></o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">        c(b())</span><span lang="ZH-CN" style="font-size:10.5pt;font-family:DengXian">;</span><o:p></o:p></pre>
<pre>    } <o:p></o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">    function b(){</span><o:p></o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">    ……</span><o:p></o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">    source point</span><span lang="ZH-CN" style="font-size:10.5pt;font-family:DengXian">;</span><o:p></o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">   }</span><o:p></o:p></pre>
<pre style="word-wrap:break-word"><o:p> </o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">   function c(para){</span><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">    ……</span><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">    sink point</span><span lang="ZH-CN" style="font-size:10.5pt;font-family:DengXian">;</span><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">   }</span><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">  function d(){</span><span lang="EN-US"><o:p></o:p></span></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">  a</span>();<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">  }</span><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">I want get all methods that will trigger the source-sink path(function a and d in demo).</span><o:p></o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">I have already get the InfoflowCFG and source-sink path, and I try to use api <em><span style="font-family:Consolas">getCallersOf(SootMethod)</span></em> to find caller of method, but failed.</span><o:p></o:p></pre>
<pre><span lang="EN-US" style="font-size:10.5pt;font-family:Consolas">Can you give me some suggestions to solve it</span><span lang="ZH-CN" style="font-size:10.5pt;font-family:DengXian">?</span><o:p></o:p></pre>
<pre style="word-wrap:break-word"><span lang="EN-US" style="font-size:10.5pt">Thank you very much.</span><span lang="EN-US"><o:p></o:p></span></pre>
<pre style="word-wrap:break-word"><span lang="EN-US" style="font-size:10.5pt">Hope to receive your replay soon.</span><span lang="EN-US"><o:p></o:p></span></pre>
<pre style="word-wrap:break-word"><span lang="EN-US" style="font-size:10.5pt"> </span><span lang="EN-US"><o:p></o:p></span></pre>
<pre style="word-wrap:break-word"><span lang="EN-US" style="font-size:10.5pt">Best regards,</span><span lang="EN-US"><o:p></o:p></span></pre>
<pre style="word-wrap:break-word"><span lang="EN-US" style="font-size:10.5pt">Jing</span><span lang="EN-US"><o:p></o:p></span></pre>
<pre><o:p> </o:p></pre>
<p class="MsoNormal"><br>
<br>
<br>
<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #B6B6B6 1.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<p class="MsoNormal" style="margin-bottom:12.0pt">-----<span lang="ZH-CN" style="font-family:DengXian">原始邮件</span>-----<br>
<b><span lang="ZH-CN" style="font-family:DengXian">发件人</span>:</b>"Linghui Luo" <<a href="mailto:linghui.luo@uni-paderborn.de">linghui.luo@uni-paderborn.de</a>><br>
<b><span lang="ZH-CN" style="font-family:DengXian">发送时间</span>:</b>2018-03-13 16:34:43 (<span lang="ZH-CN" style="font-family:DengXian">星期二</span>)<br>
<b><span lang="ZH-CN" style="font-family:DengXian">收件人</span>:</b> "<span lang="ZH-CN" style="font-family:DengXian">张婧</span>" <<a href="mailto:m201672947@hust.edu.cn">m201672947@hust.edu.cn</a>><br>
<b><span lang="ZH-CN" style="font-family:DengXian">主题</span>:</b> AW: Ask Help for Soot<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:12.0pt">Hi Jing,</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:12.0pt"> </span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-size:12.0pt">You can call getArgs() method from InvokeExpr to get the arguments passing the constructor.</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-size:12.0pt;font-family:Consolas"> </span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-family:Consolas;color:black">    Stmt </span><b><i><span lang="EN-US" style="font-family:Consolas;color:#0000C0">stm<em><span style="font-family:Consolas;background:white">t </span></em></span></i></b><span lang="EN-US" style="font-family:Consolas;color:black">=
 (Stmt) <u>unit</u>;</span><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-family:Consolas;color:black">    InvokeExpr invokeExpr = stmt.getInvokeExpr()<u>;</u></span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-family:Consolas;color:black">    </span><b><span lang="EN-US" style="font-family:Consolas;color:#7F0055">if</span></b><span lang="EN-US" style="font-family:Consolas;color:black">(invokeExpr
</span><b><span lang="EN-US" style="font-family:Consolas;color:#7F0055">instanceof</span></b><span lang="EN-US" style="font-family:Consolas;color:black"> SpecialInvokeExpr</span><span lang="EN-US" style="font-family:Consolas;color:#548235">)//constructor is
 a specialInvoke</span><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-family:Consolas;color:black">    { </span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-family:Consolas;color:black">          </span><b><span lang="EN-US" style="font-family:Consolas;color:#7F0055">for</span></b><span lang="EN-US" style="font-family:Consolas;color:black"> (</span><b><span lang="EN-US" style="font-family:Consolas;color:#7F0055">int</span></b><span lang="EN-US" style="font-family:Consolas;color:black">
</span><span lang="EN-US" style="font-family:Consolas;color:#6A3E3E">i</span><span lang="EN-US" style="font-family:Consolas;color:black"> = 0;
</span><span lang="EN-US" style="font-family:Consolas;color:#6A3E3E">i</span><span lang="EN-US" style="font-family:Consolas;color:black"> <
</span><b><i><span lang="EN-US" style="font-family:Consolas;color:#0000C0">invokeExpr</span></i></b><span lang="EN-US" style="font-family:Consolas;color:black">.getArgCount();
</span><span lang="EN-US" style="font-family:Consolas;color:#6A3E3E">i</span><span lang="EN-US" style="font-family:Consolas;color:black">++) {</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-family:Consolas;color:black">            <u>Value</u>
</span><span lang="EN-US" style="font-family:Consolas;color:#6A3E3E">arg</span><span lang="EN-US" style="font-family:Consolas;color:black">=</span><b><i><span lang="EN-US" style="font-family:Consolas;color:#0000C0">invokeExpr</span></i></b><span lang="EN-US" style="font-family:Consolas;color:black">.getArg(</span><span lang="EN-US" style="font-family:Consolas;color:#6A3E3E">i</span><span lang="EN-US" style="font-family:Consolas;color:black">);</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-family:Consolas;color:black">            </span><span lang="EN-US" style="font-family:Consolas;color:#548235">//Here you can find out which variable storing the file name is passed to the constructor, then you can do backward
 analysis to track the value of this variable or while forward analysis always track the value of String variables.</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-family:Consolas;color:black">          } </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-indent:26.4pt;text-autospace:none">
<span lang="EN-US" style="font-family:Consolas;color:black">}</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-size:12.0pt">To find out the value assigned to the variable filename you just need to look into the interface AssignStmt, you can get the left and right operand of the assignment by calling get getLeftOp()/getRightOp().</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US">               if(unit instanceof AssignStmt)</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US">               {</span><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US">                              AssignStmt assignStmt=(AssignStmt)unit;</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US">                              Value leftOp=assignStmt.getLeftOp();</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US">                              ….</span><span lang="EN-US"> </span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-indent:35.4pt;text-autospace:none">
<span lang="EN-US">}</span><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US"> </span><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-size:12.0pt">Best,</span><span lang="EN-US"> </span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US" style="font-size:12.0pt">Linghui Luo</span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US"> </span><span lang="EN-US">
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">_________________________________
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">M. Sc. Linghui Luo
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span style="color:black"> </span></b>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;color:black;background:white">Wissenschaftliche Mitarbeiterin/Research assistant</span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> 
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;color:black;background:white">Fachgruppe Softwaretechnik</span><span style="font-size:10.0pt;color:black"><br>
<span style="background:white">Heinz Nixdorf Institut</span><br>
<span style="background:white">Universität Paderborn</span><br>
<span style="background:white">Fürstenallee 11</span><br>
<span style="background:white">33102 Paderborn</span></span> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;color:black;background:white"> </span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;color:black;background:white">E-Mail:
</span><span style="font-size:10.0pt;color:#0070C0;background:white"><a href="mailto:linghui.luo@uni-paderborn.de">linghui.luo@uni-paderborn.de</a></span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;color:black;background:white">Telefon: +49 5251 606568</span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;color:black;background:white">Raum: F1.119</span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:10.0pt;color:black;background:white"> </span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">_________________________________
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> 
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;text-autospace:none">
<span lang="EN-US"> </span><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b>Von:</b>
<span lang="ZH-CN" style="font-family:DengXian">张婧</span> <<a href="mailto:m201672947@hust.edu.cn">m201672947@hust.edu.cn</a>>
<br>
<b>Gesendet:</b> Dienstag, 13. März 2018 06:39<br>
<b>An:</b> Linghui Luo <<a href="mailto:linghui.luo@uni-paderborn.de">linghui.luo@uni-paderborn.de</a>><br>
<b>Betreff:</b> Ask Help for Soot <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> 
<o:p></o:p></p>
<pre><span style="font-size:10.5pt">Hi Linghui Luo,</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt"> </span><o:p></o:p></pre>
<pre style="word-wrap:break-word"><span style="font-size:10.5pt">My name is Jing Chang. I have seen your answer about "identify write operation on local". </span><o:p></o:p></pre>
<pre style="word-wrap:break-word"><span style="font-size:10.5pt">now I want to get value of filename of write/read operations from code like:</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt"> </span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt">(1) String filename = "**/**/**/**.txt"  ;</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt">BufferedWriter bfw = new BufferedWriter(new FileWriter(filename, true));</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt"> </span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt">(2) filename = Environment.getExternalStorageDirectory().getCanonicalPath() + "/" + filename;</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt">   FileOutputStream output = new FileOutputStream(filename);</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt"> </span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt">(3) String filename = "123"+"**.txt" ;</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt">outputStream = openFileOutput(filename, Context.MODE_APPEND);</span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt"> </span><o:p></o:p></pre>
<pre><span style="font-size:10.5pt">Is there any helper methods inside Soot that can help me?</span><o:p></o:p></pre>
<pre style="word-wrap:break-word"><span style="font-size:10.5pt"> </span><o:p></o:p></pre>
<pre style="word-wrap:break-word"><span style="font-size:10.5pt">Thank you very much.</span><o:p></o:p></pre>
<pre style="word-wrap:break-word"><span style="font-size:10.5pt">Hope to receive your replay soon.</span><o:p></o:p></pre>
<pre style="word-wrap:break-word"><span style="font-size:10.5pt"> </span><o:p></o:p></pre>
<pre style="word-wrap:break-word"><span style="font-size:10.5pt">Best regards,</span><o:p></o:p></pre>
<pre style="word-wrap:break-word"><span style="font-size:10.5pt">Jing</span><o:p></o:p></pre>
</blockquote>
</div>
</body>
</html>