持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情
概要
CachéStudio调试器使您可以逐步执行在Caché服务器上运行的程序。可以调试的程序包括INT文件,BAS文件,MAC文件,CLS文件中的方法,响应HTTP请求的CSP类,从Java或ActiveX客户端调用的服务器端方法或服务器托管的应用程序。要在类或CSP页面中单步执行或设置断点,请打开相应的INT或BAS文件并在其中使用调试命令。要查看INT源代码文件,请转到Tools > Options 对话框Compiler, General Flags 选项卡,然后启用“保留生成的源代码( Keep Generated Source Code )”选项。
以通过以下方式之一将调试器连接到目标进程:
-
使用 Project > Settings > Debugging > Debug Target(或Debug > Debug Target)为当前项目定义调试目标(程序,例程或要调试的Zen或CSP页面的名称)。然后选 Debug > Go以启动目标程序并连接到其服务器进程。
-
选择 Debug > Attach,然后选择Caché服务器上正在运行的进程。
有时将命令行调试与zbreak命令一起使用可以为您提供更好的控制。
样本调试会话:调试例程
下面的示例演示如何调试Caché例程。
- 启动Studio,然后选择 File > New Project以创建一个名为Project1的新项目。
- 通过选择File > New > General tab > Caché ObjectScript Routine来创建新例程。
- 输入此例程的代码:
MyTest ; MyTest.MAC
Main() PUBLIC {
Set a = 10
For i = 1:1:10 {
Set b = i
Write b," "
}
}
- 使File > Save As,将新例程保存并编译为MyTest.MAC。
- 通过选择Debug > Debug Target 选项卡,选择Class Method or Caché Routine,然后在新例程Main ^ MyTest中输入入口点的名称,为项目定义调试目标。
- 在例程中设置断点:将光标置于行上的任意位置设置a = 10并按F9(切换断点键)。断点指示器出现在左边缘。
- 选择 Debug > Go 以开始调试。当调试器在断点处停止时,下一个要执行的命令将以黄色框标出轮廓。INT文件在新窗口中打开(如果启用了“保持生成的源代码”选项,则Tools > Options 对话框的“编译器”,Compiler, General Flags 选项卡上)。
- 在“监视”窗口 (View > Watch) 中输入b和a(作为监视点),以便您可以监视值。
- 通过重复选择 Debug > Step Into (F11),逐步执行程序,并注意b值的变化。
可以通过跳到程序结尾或选择Debug > Stop来停止调试。
当前项目的调试器设置
某些调试设置已定义并存储在当前项目中。这些包括:
- Debug Target
- Breakpoints
调试目标
调试目标会告诉Studio要调试哪个进程。
要为项目指定调试目标,请选择Project > Settings > Debugging > Debug Target ,或选择Debug > Debug Target。选择以下一项,当您选择Debug > Go时,将启动该选项。您还可以通过以下方式设置调试目标:将光标置于编辑器窗口中某个项目的旁边,右键单击,然后选择“将xxxx设置为调试目标”。
类方法或Caché例程
执行Debug > Go 时要调试的例程(和标记),类或方法。例如,输入Test^MyRoutine() 以在例程MyRoutine中的标签Test处开始执行。或输入要执行的类方法的名称,例如 ##class(MyApp.Person).Test(1).
ZEN和CSP页面(URL,CSP或类)
调用Debug> Go时要访问的Zen或CSP页面。调试器连接到为CSP页面的HTTP请求提供服务的Caché服务器进程。使用此选项调试CSP应用程序,例如,单步执行Test.csp页面的代码,输入/csp/user/Test.csp作为调试目标。