Debugging Operations
In circom there is an operation that can be used while developing circuits to help the programmer debug (note that there are no input/output operations on the standard input/output channels). To this end, the operation log
has as parameter a non-conditional expression (i.e., not including the ?
;_
operator). The execution of this instruction prints the result of the evaluation of the expression in the standard error stream. As examples consider:
log(135);
log(c.b);
log(x==y);
Since circom 2.0.6, operation log
admits a list of non-conditional expressions and also strings written in the standard way. For instance:
log("The expected result is ", 135, " but the value of a is", a);
Finally, this operation admits an empty list of expressions which is equivalent to printing an end-of-line. The next two instructions are equivalent:
log("");
log();