jq是否有方法在代码中 * 发生错误的地方a给予引用?
我经常会犯一些毫无帮助的错误。下面是一个例子:
jq: error (at <stdin>:43913): Cannot index object with null
不管有没有--slurp标志,stdin的行指示符几乎总是输入的最后一行。真正有用的是注意它在运行时在代码中的什么地方失败。
用$__loc__
将代码片段 Package 在try/catch块中也被证明是没有帮助的,因为代码中的行往往是catch块,而不是发生错误的地方。
jq: error (at <stdin>:43913) (not a string): {"file":"<top-level>","line":68}
是否有某种方法可以简化jq脚本的调试?
我一直在做的是注解掉大块的代码,并执行二进制搜索,以查找哪些代码出现错误。感觉有更好的方法。
1条答案
按热度按时间jgovgodb1#
有时候,使用gojq(“jq的Go实现”)可以很好地了解错误。
否则,您可能会发现
debug
语句、$__loc__
和使用debug
定义的调试函数的某种组合是最有帮助的。例如,请考虑:
(The这里微妙之处在于,您可以在
msg
中使用"\(.)"
。)在紧要关头,命令行选项
--debug-trace
可能很有用。