svf-tools 1.0.514 → 1.0.515
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/ExtAPI_8cpp.html +7 -7
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +45 -45
- package/SVF-doxygen/html/html/ExtAPI_8h.html +3 -3
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +71 -71
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +135 -135
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
- package/include/Util/ExtAPI.h +25 -28
- package/lib/SVF-FE/SVFIRBuilder.cpp +1 -1
- package/lib/Util/ExtAPI.cpp +26 -6
- package/package.json +1 -1
|
@@ -110,9 +110,9 @@ Functions</h2></td></tr>
|
|
|
110
110
|
</table>
|
|
111
111
|
</div><div class="memdoc">
|
|
112
112
|
|
|
113
|
-
<p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#
|
|
114
|
-
<div class="fragment"><div class="line"><a name="
|
|
115
|
-
<div class="ttc" id="ExtAPI_8cpp_html_a424940f91f234b23bcc633f12269f935"><div class="ttname"><a href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a></div><div class="ttdeci">static std::string GetStdoutFromCommand(const std::string &command)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#
|
|
113
|
+
<p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00066">66</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
|
|
114
|
+
<div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> jsonFilePath = <a class="code" href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a>(path);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span> (path.compare(<span class="stringliteral">"npm root"</span>) == 0)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordtype">int</span> os_flag = 1;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// SVF installed via npm needs to determine the type of operating system,</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// otherwise the ExtAPI.json path may not be found</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// Linux os</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#ifdef linux</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  os_flag = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  jsonFilePath.append(<span class="stringliteral">"/svf-lib/SVF-linux"</span>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// Mac os</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (os_flag == 1)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  jsonFilePath.append(<span class="stringliteral">"/svf-lib/SVF-osx"</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  jsonFilePath.append(<a class="code" href="ExtAPI_8h.html#ad9bef4304f41728bb3edf259c6b67668">EXTAPI_JSON_PATH</a>);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">return</span> jsonFilePath;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> }</div><div class="ttc" id="ExtAPI_8h_html_ad9bef4304f41728bb3edf259c6b67668"><div class="ttname"><a href="ExtAPI_8h.html#ad9bef4304f41728bb3edf259c6b67668">EXTAPI_JSON_PATH</a></div><div class="ttdeci">#define EXTAPI_JSON_PATH</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00039">ExtAPI.h:39</a></div></div>
|
|
115
|
+
<div class="ttc" id="ExtAPI_8cpp_html_a424940f91f234b23bcc633f12269f935"><div class="ttname"><a href="ExtAPI_8cpp.html#a424940f91f234b23bcc633f12269f935">GetStdoutFromCommand</a></div><div class="ttdeci">static std::string GetStdoutFromCommand(const std::string &command)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00042">ExtAPI.cpp:42</a></div></div>
|
|
116
116
|
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
117
117
|
</div><!-- fragment -->
|
|
118
118
|
</div>
|
|
@@ -141,8 +141,8 @@ Functions</h2></td></tr>
|
|
|
141
141
|
</table>
|
|
142
142
|
</div><div class="memdoc">
|
|
143
143
|
|
|
144
|
-
<p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#
|
|
145
|
-
<div class="fragment"><div class="line"><a name="
|
|
144
|
+
<p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00042">42</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
|
|
145
|
+
<div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordtype">char</span> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>[128];</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> result = <span class="stringliteral">""</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// Open pipe to file</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  FILE *pipe = popen(command.c_str(), <span class="stringliteral">"r"</span>);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span> (!pipe)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> <span class="stringliteral">"popen failed!"</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// read till end of process:</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">while</span> (!feof(pipe))</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// use buffer to read and add to result</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">if</span> (fgets(buffer, 128, pipe) != <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  result += buffer;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  pclose(pipe);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// remove "\n"</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  result.erase(<span class="keyword">remove</span>(result.begin(), result.end(), <span class="charliteral">'\n'</span>), result.end());</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div><div class="ttc" id="cJSON_8h_html_a503753140aa27b00f99a3501280b2746"><div class="ttname"><a href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a></div><div class="ttdeci">char * buffer</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00163">cJSON.h:163</a></div></div>
|
|
146
146
|
<div class="ttc" id="cJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
|
|
147
147
|
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
148
148
|
</div><!-- fragment -->
|
|
@@ -182,8 +182,8 @@ Functions</h2></td></tr>
|
|
|
182
182
|
</table>
|
|
183
183
|
</div><div class="memdoc">
|
|
184
184
|
|
|
185
|
-
<p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#
|
|
186
|
-
<div class="fragment"><div class="line"><a name="
|
|
185
|
+
<p class="definition">Definition at line <a class="el" href="ExtAPI_8cpp_source.html#l00089">89</a> of file <a class="el" href="ExtAPI_8cpp_source.html">ExtAPI.cpp</a>.</p>
|
|
186
|
+
<div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  FILE *file = fopen(path.c_str(), <span class="stringliteral">"r"</span>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">if</span> (!file)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// allocate memory size matched with file size</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordtype">char</span> *jsonStr = (<span class="keywordtype">char</span> *)calloc(fileSize + 1, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="comment">// read json string from file</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = fread(jsonStr, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>), fileSize, file);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">if</span> (size == 0)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVFUtil::errMsg</a>(<span class="stringliteral">"\t Wrong ExtAPI.json path!! "</span>) << <span class="stringliteral">"The current ExtAPI.json path is: "</span> << path << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"Read ExtAPI.json file fails!"</span>);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  fclose(file);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// convert json string to json pointer variable</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="structcJSON.html">cJSON</a> *root = cJSON_Parse(jsonStr);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">if</span> (!root)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  free(jsonStr);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  free(jsonStr);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> root;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }</div><div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
|
|
187
187
|
<div class="ttc" id="structcJSON_html"><div class="ttname"><a href="structcJSON.html">cJSON</a></div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00103">cJSON.h:103</a></div></div>
|
|
188
188
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
|
|
189
189
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00076">SVFUtil.cpp:76</a></div></div>
|