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