report-error will report a fatal error. It will format an error message according to the <format> string and a list of <variable>s and then write it in the trace file (see directories); this happens regardless of whether tracing is enabled or not.
<format> string must be present and there must be at least one <variable> (it means if you want to trace a simple string literal you still have to use "%s" as format). The reason for this is to avoid formatting errors, and to use formatting in a consistent fashion.
Format
<format> string must be a literal. Variables must follow <format> separated by commas in the same order as placeholders. If you use any placeholders other than specified below, or the type of variables you use do not match the type of a correspoding placeholder in <format>, your program will error out. You can use the following placeholders in <format> (see trace-run for an example of usage):
%s for a string
%<number>s for a string output with a width of at least <number> (any excess filled with spaces to the left),
%ld for a number
%<number>ld for a number output with a width of at least <number> (any excess filled with spaces to the left)
Examples
report-error"Too many input parameters for %s, encountered total of [%ld]", "customer", num_count