question: public void dump_json ( PrintStream fp , String indent ) { fp . printf ( "%s{ %s,\n" , indent , json_field ( "type" , type ) ) ; fp . printf ( "%s  %s,\n" , indent , json_field ( "link" , link ) ) ; fp . printf ( "%s  %s,\n" , indent , json_field ( "signature" , method . getSignature ( ) ) ) ; SourceLocationTag slt = ( stmt == null ) ? SootUtils . getMethodLocation ( method ) : getSourceLocation ( stmt ) ; if ( slt != null ) { fp . printf ( "%s  %s" , indent , json_field ( "src-loc" ) ) ; fp . printf ( "{ %s, %s},\n" , json_field ( "class" , slt . getClz ( ) ) , json_field ( "line" , slt . getLine ( ) ) ) ; } fp . printf ( "%s  %s,\n" , indent , json_field ( "syscalls" , syscalls ) ) ; fp . printf ( "%s  %s,\n" , indent , json_field ( "calls" , calls ) ) ; if ( ( contents != null ) && ( contents . length > 0 ) ) { fp . printf ( "%s  %s,\n" , indent , json_field ( "score" , score ) ) ; fp . printf ( "%s  %s [\n" , indent , json_field ( "contents" ) ) ; String delim = "" ; for ( CallChainInfo cci : contents ) { fp . print ( delim ) ; delim = ",\n" ; cci . dump_json ( fp , indent + "  " ) ; } fp . printf ( "\n%s]}" , indent ) ; } else { fp . printf ( "%s  %s\n" , indent , json_field ( "score" , score ) ) ; fp . printf ( "%s}" , indent ) ; } }
target:  Dumps out the call chain in json format 