限制Perl调试器打印的信息量

前端之家收集整理的这篇文章主要介绍了限制Perl调试器打印的信息量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我调查Perl代码(在命令行debbugger,perl -d)中的一个问题是,错误地打印(通过x命令)大型数据结构的内容可以保证将终端冻结一整半,同时保持100秒打印数据页面.特别是如果这种情况发生在缓慢的网络中.

因此,我希望能够限制x打印的数据量.

我看到两种方法 – 如果有人知道怎么做,我愿意尝试.

>限制调试器中任何单个命令的数据量.
>更好的是,以某种方式用自定义Perl方法替换内置的x命令(它将计算数据结构的“大小”,并拒绝打印其内容而无需确认).

我特别问“如何用自定义代码替换x” – 构建一个“足够好”的数据结构太大了“Perl方法是我可以自己做的事情而不需要太多努力,尽管我看到足够的陷阱阻止了”完美的“从一个相当令人沮丧的努力.哎呀,只是做Data :: Dumper->转储并获取字符串的长度可能会诀窍:)

请注意,我非常清楚如何通过递归检查数据结构层来手动避免这个问题(例如打印ref,打印键/数组元素的数量等等)……整点都是我希望能够不假思索地轻易地输入x $huge_pile_of_data – 或者绊倒将一大堆数据填充到应该是标量的错误中.

解决方法

|调试器中的命令将另一个命令的输出传送给你的寻呼机,例如

  DB<1> |x %huge_datastructure

猜你在找的Perl相关文章