perl -d -I“ ./Dev/lib/” -I“ ./TestCases/Dev/” ./Dev/bin/mytest.pl
我想使用'perl -d'调试mytest.pl,并且有很多* .pm文件。我想使用'f * .pm'加载此pm文件并在此pm文件中设置一个中断,但显示'没有文件匹配'。我给出了该pm文件的完整路径,并且该路径完全存在。
DB<4> f /automation_code/TestCases/Tests/Dev/testcase1.pm
No file matching '/automation_code/TestCases/Tests/Dev/testcase1.pm' is loaded.
但是如果我给出由./Dev/bin组成的路径,它将成功加载。
DB<2> f /automation_code/Dev/bin/../lib/Setup.pm
DB<3> f /automation_code/Dev/lib/Setup.pm
No file matching '/automation_code/Dev/lib/Setup.pm' is loaded.
答案 0 :(得分:3)
您可以使用以下命令查看加载到程序中的所有文件
x values %INC
修改
调试器中的b命令具有几个选项。
b load *filename*
在文件加载时中断b compile *subname*
在编译子例程时中断b postpone *subname*
将在当前不存在的子例程上放置一个断点。答案 1 :(得分:1)
如果您的框架尝试模仿面向对象的方法,并且将perl文件用作软件包,则可以尝试以下选项:
DB<1> use <package_name_of_file>
DB<2> b <package_name_of_file>::sub_routine_where_you_want_to_break
当b postpone
和f <file_name>
不在调试一个例程时,它对我有用,该例程将在以后的某个时间点加载。