debugging 删除了`$DB::single = 1`幸存的Perl调试器的`R`?

qltillow  于 2023-08-06  发布在  Perl
关注(0)|答案(1)|浏览(93)

在调试我的包代码时,我很懒,在我想有一个断点的地方添加了$DB::single = 1;,直到代码正确工作(重写代码以使其正确花费了相当长的时间)。
最后代码没问题了,我删除了$DB::single = 1;行,保存了缓冲区(Emacs的说法),并在另一个终端中按下R来重新加载程序。
令人惊讶的是,程序仍然停止在$DB::single = 1;过去的位置,但现在不再存在了。
于是我纳闷:是因为Perl调试器没有重新加载包代码(因为我没有递增$VERSION),还是调试器中的一个bug保留了关于$DB::single = 1;的信息(就像断点在R中被记住一样(作为行号))?

cs7cruho

cs7cruho1#

我仍然不知道为什么会有这样的效果,但我发现我可以在调试器提示符处使用“B line_number”删除那些断点,就像删除普通断点一样。

相关问题