MetaEditor 帮助

调试中

调试中

当写入相当复杂的程序时,很难消除错误。MetaEditor为您提供的内置调试器来帮您解决这个问题。应用程序调试包括可以逐步执行程序,计算局部变量,在一个预设的位置设置断点。

若要开始调试,项目的主文件窗口一定要激活 (*.MQ5)。若要调试包括文件(*.MQH),需要启动包含的调试文件。

此外,调试进程详细描述:

预设

您启动程序调试之前,必须在MetaEditor选项窗口的“调试”标签中,检查其参数。在这个窗口,您可以指定交易品种和图表周期,将在这里进行应用程序调试。这种图表在启动调试时,每次都是暂时创建,并且在调试完成后,被删除。

"debug.tpl"模板位于客户端的 /profiles/templates文件夹,用于调试创建的图表。

断点

断点 是程序执行通过时,触发指示线和停止此位置程序的命令。断点允许在选定的位置分析程序行为:查看变量值,堆叠功能。之后,调试过程可以继续或完成。

您启动调试之前,请把这种断点放在必要的代码位置。要做到这一点,在代码行的左边框附近的灰色字段上,双击鼠标左键。您也可以把鼠标光标放在必要的行,并执行“切换断点 切换断点”命令"调试" 菜单或"标准" 工具栏,或您可以按"F9" 键。断点以同样的方式被禁用。

断点

开始调试

要启动调试过程,必须在"导航"窗口选择打开一个程序文件。然后执行"开始调试 开始调试" 命令在 "调试" 菜单或在"标准" 工具栏,或您可以按"F5" 键。在这之后,调试程序将被连接到交易程序端中的一个特殊图表 。程序执行一旦达到第一个断点行,它将被停止。停止执行的点将变为 触发断点。此外,"调试"标签将出现在“工具箱”窗口。在其左侧函数调用堆 将被显示。

在真实条件下,使用从服务器接收的价格数据,来执行应用程序调试。创建用于调试的特殊临时图表与客户端打开的普通图表相比没有任何差异。

关注表达式

在调试过程中,您可以关注在该程序执行阶段获得的不同表达式(变量)的值。为了这些目的,使用在“工具箱”窗口中"调试"标签右侧。一个表达式可以通过以下方式添加:

  • 在调试过程中,调用必要的表达式的快捷菜单,并选择“添加关注添加关注”命令或按下"Shift+F9" 组合键;
  • 在“工具箱”窗口“调试”标签右侧,调用快捷菜单和执行"添加添加"命令或按下"插入"键。之后,会出现一个新行,并且在其“表达式”字段,您应该输入关注参数名称。
  • 要改变关注表达式的名称,必须在其名称上双击鼠标左键或者选择它并执行快捷菜单的“编辑”命令或按下"F2"键。

查看堆和表达式

在表达式关注窗口,您可以进行简单的数学运算(加,减,乘和除),以及查看某些数列点的值。例如,您可以表明这样的记录A[3][4],其中A是数组名,3和4是在其尺寸的位置。当添加对象观察表达式时,成员列表可以被显示,通过在末端添加一个点或按下"Ctrl+Space"。

插入对象成员

查看调用堆

“工具箱”窗口的 "调试" 标签允许查看堆。 这里显示以下几个组件:

  • 函数调用的文件名;
  • 函数名称;
  • 文件中的行数,函数调用的位置。

当调试进程开始时,只有调用的函数地址,就是断点触发的地方,显示在该窗口。

逐步调试

为了逐步调试和查看调用堆,使用 "调试"菜单或工具栏 "标准"命令:

  • 进入 进入 ― 一步程序执行,进入调用的函数。按下“F11”键也能执行同样的操作。
  • 不进入函式 不进入函式 ― 一步程序执行,不进入调用的函数。按下“F10”键也能执行同样的操作。
  • 退出 退出 ― 进入执行程序步骤一个更高的级别。按下“Shift+F11”键也能执行同样的操作。

为了执行上述命令,调试过程必须停止。这是自动完成的,当程序执行到断点时。调试也可以手动暂停通过按下 "中断调试 中断调试"在"调试"菜单或在"标准" 工具栏,或者通过按下"中断" 键。

当应用程序在断点时,发生的事件仍在继续。当全部都在一个队列里时,退出当前事件句柄的代码后,通过EA交易的处理将继续。

中断,继续,停止调试

程序调试过程的中断是自动完成的,当它到达一个断点行的时候。然而,调试过程中可以手动管理:

  • 中断
    执行程序调试时,它可以手动中断使用"中断调试 中断调试"命令在"调试" 菜单或在 "标准" 工具栏,或者按下"中断" 键。之后,您可以一步一步的执行调试。
  • 继续
    为了在调试模式下继续运行程序,在它自动或手动中断后,执行"继续调试 继续调试" 命令在"调试"菜单或在同名的"标准" 工具栏,或按下"F5"键。
  • 停止
    若要停止调试,必须执行"停止调试 停止调试"命令在"调试菜单" 或在 "标准" 工具栏,或按下"Shift+F5"。程序停止后,从连接调试的特殊图表移除,并且关闭图表。

没有源MQ5和MQH文件是不可能 调试的。也建议不要分派在调试结果中获得的EX5文件。