在调试器中设置任意断点

Jim*_*Jim 3 debugging perl module perl-module

我一直在使用perl交互式调试器(基本上perl -d script)
我有一个脚本,导入了相当多的模块,我需要调试问题.
我所做的是启动调试器并重新排队,进入必要的地方.
但这很乏味,因为我需要进入多行代码和函数调用.

问题:让我们说在经过代码行之后,我最终会进入A::B::C::foo()某个模块的功能,这就是我正在调试的问题.
有没有办法在调试会话开始时在该函数中设置一个断点,这样我就可以直接跳到那里而不是逐行遍历代码直到我到达那里为止?
我知道我可以在我的调试器当前的同一个文件中添加一个断点但是如何在此时在调试器范围之外的行中添加一个断点(对于某个任意文件/模块,最终调试器会有到达)?

注意:
只是为了澄清:它A::B::C::foo()与脚本的第X行不一样.它最终在许多模块中的很多其他函数的调用链之后被调用

cho*_*oba 7

您可以使用记录的b sub语法将断点设置为子例程.在这种情况下,只需使用

b A::B::C::foo
c
Run Code Online (Sandbox Code Playgroud)

  • @Jim,不应该有所作为.在Perl中,方法几乎只是将对象作为第一个参数的函数.如果你知道`$ obj-> foo()`调用`A :: B :: foo`,那么它与`A :: B :: foo($ obj)`相同. (3认同)