Files
codeql/python/tools/recorded-call-graph-metrics/example-traces/simple.xml
Rasmus Wriedt Larsen c2748bf7cf Python: CG trace: reconstruct call expr from bytecode
So we can differentiate multiple calls in one line.
2020-07-20 11:28:05 +02:00

138 lines
4.4 KiB
XML

<root>
<info>
<cg_trace_version>0.0.2</cg_trace_version>
<args>--xml example-traces/simple.xml example/simple.py</args>
<exit_status>completed</exit_status>
<elapsed>0.00 seconds</elapsed>
<utctimestamp>2020-07-20T09:27:01</utctimestamp>
</info>
<recorded_calls>
<recorded_call>
<Call>
<filename>/home/rasmus/code/ql/python/tools/recorded-call-graph-metrics/example/simple.py</filename>
<linenum>2</linenum>
<inst_index>4</inst_index>
<bytecode_expr>
<BytecodeCall>
<function>
<BytecodeVariableName>
<name>print</name>
</BytecodeVariableName>
</function>
</BytecodeCall>
</bytecode_expr>
</Call>
<ExternalCallee>
<module>builtins</module>
<qualname>print</qualname>
<is_builtin>True</is_builtin>
</ExternalCallee>
</recorded_call>
<recorded_call>
<Call>
<filename>/home/rasmus/code/ql/python/tools/recorded-call-graph-metrics/example/simple.py</filename>
<linenum>5</linenum>
<inst_index>4</inst_index>
<bytecode_expr>
<BytecodeCall>
<function>
<BytecodeVariableName>
<name>print</name>
</BytecodeVariableName>
</function>
</BytecodeCall>
</bytecode_expr>
</Call>
<ExternalCallee>
<module>builtins</module>
<qualname>print</qualname>
<is_builtin>True</is_builtin>
</ExternalCallee>
</recorded_call>
<recorded_call>
<Call>
<filename>/home/rasmus/code/ql/python/tools/recorded-call-graph-metrics/example/simple.py</filename>
<linenum>7</linenum>
<inst_index>18</inst_index>
<bytecode_expr>
<BytecodeCall>
<function>
<BytecodeVariableName>
<name>foo</name>
</BytecodeVariableName>
</function>
</BytecodeCall>
</bytecode_expr>
</Call>
<PythonCallee>
<filename>/home/rasmus/code/ql/python/tools/recorded-call-graph-metrics/example/simple.py</filename>
<linenum>1</linenum>
<funcname>foo</funcname>
</PythonCallee>
</recorded_call>
<recorded_call>
<Call>
<filename>/home/rasmus/code/ql/python/tools/recorded-call-graph-metrics/example/simple.py</filename>
<linenum>8</linenum>
<inst_index>24</inst_index>
<bytecode_expr>
<BytecodeCall>
<function>
<BytecodeVariableName>
<name>bar</name>
</BytecodeVariableName>
</function>
</BytecodeCall>
</bytecode_expr>
</Call>
<PythonCallee>
<filename>/home/rasmus/code/ql/python/tools/recorded-call-graph-metrics/example/simple.py</filename>
<linenum>4</linenum>
<funcname>bar</funcname>
</PythonCallee>
</recorded_call>
<recorded_call>
<Call>
<filename>/home/rasmus/code/ql/python/tools/recorded-call-graph-metrics/example/simple.py</filename>
<linenum>10</linenum>
<inst_index>30</inst_index>
<bytecode_expr>
<BytecodeCall>
<function>
<BytecodeVariableName>
<name>foo</name>
</BytecodeVariableName>
</function>
</BytecodeCall>
</bytecode_expr>
</Call>
<PythonCallee>
<filename>/home/rasmus/code/ql/python/tools/recorded-call-graph-metrics/example/simple.py</filename>
<linenum>1</linenum>
<funcname>foo</funcname>
</PythonCallee>
</recorded_call>
<recorded_call>
<Call>
<filename>/home/rasmus/code/ql/python/tools/recorded-call-graph-metrics/example/simple.py</filename>
<linenum>10</linenum>
<inst_index>36</inst_index>
<bytecode_expr>
<BytecodeCall>
<function>
<BytecodeVariableName>
<name>bar</name>
</BytecodeVariableName>
</function>
</BytecodeCall>
</bytecode_expr>
</Call>
<PythonCallee>
<filename>/home/rasmus/code/ql/python/tools/recorded-call-graph-metrics/example/simple.py</filename>
<linenum>4</linenum>
<funcname>bar</funcname>
</PythonCallee>
</recorded_call>
</recorded_calls>
</root>