对于MicroStation的二次开发来说,掌握在线调试的技能十分有必要,因为如果采用对话框输出信息的方式,在查找错误的效率上来讲会大打折扣。本文基于VisualStudio2017进行讲解,对调试的步骤进行详细阐述,帮助您全面掌握调试的方法。
启动调试
对于MicroStation的二次开发来说,当我们需要对生成的dll文件进行调试时,首先需要确定,在配置一栏确定为Debug,否则无法进行调试。<br /><br />**图1 配置栏**<br /> 当我们编译后,会在mdlapps文件夹中生成对应的dll文件,此时我们点击调试(Debug)—附加到进程(Attach to Process...)**(快捷点:Ctrl+Alt+P)**,此时我们启动MicroStation,在列表中搜索MicroStation.exe进程,可使用搜索栏输入关键字,MicroStation。<br />(注意:若已启动MicroStation软件但未在进程列表中找到MicroStation.exe可点击刷新(Refresh))<br /><br />**图2 附加进程界面**
调试作用
图3 调试界面
通过调试我们在监视器中查看该进程运行过程中内存,CPU的使用状态,将鼠标停留在变量上,下方界面,或者使用监视(AddWatch)查看变量的属性值。
断点(Breakpoints)
断点用于通知调试器暂停程序的位置,可通过点击左边空白栏或点击F9在当前行添加/删除断点。一般会在出问题的位置或之前设置断点,然后使用调试工具分析出现问题的具体原因。<br /><br />**图4 设置断点**
调试(Debug)
当我们的程序执行到这一行时,则程序会停在断点处,黄色箭头显示的是程序将要执行的条目,并等待调试操作。以下是几种调试功能,接下来我依次对其进行介绍。<br /><br />**图5 调试**
逐过程(Step Over)
图6 逐过程调试
图7 逐过程按钮
逐过程(快捷键:F10)用于逐条执行代码,执行高亮的行,然后暂停,不会进入函数内部。
逐语句(Step Into)
基本与逐过程相似,他们的区别是若高亮语句是方法调用,调试器会进入方法内部。**(快捷键:F11)。**<br /><br />**图8 逐语句调试**<br /><br />**图9 逐语句按钮**
跳出(Step Out)
当在一个方法内部调试时,若需要跳出整个个方法,则使用该功能后调试器会完成此方法中的执行,并跳出至调用此方法的语句的下一条语句暂停。**(快捷键:Shift+F11)**<br /><br />**图10 跳出调试**<br /><br />**图11 跳出按钮**
继续(Continue)
当使用继续时,他会继续程序的执行直到结束或遇到下一个断点停止。**(快捷键:F5)**<br /><br />**图12 继续调试**<br /><br />**图13 继续按钮**
设置下一语句(Set Next Statement)
该语句可以改变程序的执行路径,该功能课直接跳转至指定行,这样程序就会转到指定行而不执行先前代码。当我们确认某一个方法会导致程序的崩溃,我们可以使用该功能跳过会导致崩溃的方法后继续调试后续代码。使用拖拽箭头的方式也可以达到同样效果。**(快捷键:Ctrl+Shift+F10)**<br /><br />**图14 设置下一语句调试**