欢迎来到天天文库
浏览记录
ID:11689270
大小:251.50 KB
页数:22页
时间:2018-07-13
《tc代码编辑、调试技术详解,图文教程,高手必备!》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、TC论坛rainshine原创,转载麻烦各位带上原创作者名字……谢谢。为防沉,一部分内容回复可见。首先打开TC,主界面左上方有调试栏。分别给大家解释下每个按钮的功能——运行:以调试模式运行脚本。单步调试:脚本运行遇到断点后,单击此按钮可以一条语句一条语句地执行,每执行一条语句就会暂停。过程调试:脚本运行遇到断点后,单击此按钮可以让脚本继续执行下去,直到遇到下个断点才停下。停止调试:以调试模式运行脚本时,单击此按钮可以结束进程,退出脚本。新建/删除断点:编写脚本时,在某个语句上加个断点。删除所有断点:顾名思义,把此文件中添加的所有的断点都删除掉。上面提到了一个名词
2、:断点。什么是断点呢,从脚本源码编辑框看,就是个小小的黄圈圈。在代码左边、行数右边的地方单击鼠标就可以添加一个断点。脚本在运行过程中(调试模式,生成为exe文件运行是不会有断点的,以下均为调试模式运行),实际上是在执行一行一行的源码,当执行到有断点的语句时(准确地说是执行此语句前,举个例子:这段代码给a=20添加了一个断点,程序运行到此行的时候就会停下来,此刻a的值是10不是20,也就是说,a=20还未执行。),就会暂停下来。此时我们可以看到TC界面下方的输出栏里:。单击,可以看到此刻程序内所有变量的具体值:。右击某个变量,在弹出的菜单中可以复制它的数值(例如第
3、一个变量:"programming!by_rainshine.")。也可以单击“复制整行”将此变量的所有信息写入剪贴板(例如:网络应用字符串字符型"programming!by_rainshine.")。而单击“十六进制显示”,可以将“整型”的变量以16进制的方式显示出来:。如果某个变量是数组,,单击一下右边的数值,就出现一个下拉框,单击右边的小箭头,就能看到数组所有元素的值啦。当变量很多时,或者在分析整个代码的时候,看表格找变量值是很不方便的。其实我们可以把鼠标放在某个变量名的位置上,稍等即可显示出此变量的值,这样就不必去查表格了。Ok,下面就说说单步调试和过
4、程调试。其实很好理解的,举个例子就懂了:运行此段代码,可以看到出现了这个标志,中间的红色小三角表示程序暂停在此行。此时a的值为:。我们单击(或者按F8也可以哦),可以看到:红色小三角转移到了下一行。表示a=20这一行执行完成,还未运行21行,此时程序暂停中。这时a的值为:。再次单击“单步调试”,a的值依次变为30、40、50……这就是单步调试的作用啦,可以将执行过程细化到每条语句,方便我们实时查看变量的值。我们仍以这段代码为例,先按下Shift+F5停止调试,然后再次运行。执行到断点,脚本会暂停,此时a的值为10。单击(或按F7),可以看到:脚本没有暂停在a=3
5、0这一行,而是继续运行,直到a=60才暂停、,此时a的值为:。吼吼,过程调试的作用很明确了吧:脚本暂停在某行时,单击过程调试可以让脚本继续执行,一直执行到下个断点再暂停,如果没有下个断点就不会再次暂停了。在这里做个补充,别让新手朋友误会……在上面的例子中,当暂停在a=20时按下过程调试,几乎没有间隔时间,脚本又暂停在a=60。这其实是因为计算机的效率太高了,我们肉眼分辨不出来。中间的那部分代码是执行过的!而不是从a=20直接跳到a=60……也就是说,如果在a=20下面加一句消息框,单击过程调试,它是会弹出的。另外,脚本执行至断点暂停时,程序是假死状态的(其实是不
6、响应任何消息了)。就像这样:,其实不必担心,删除所有断点后,或生成为exe执行时,是不会有这样的情况的。关于断点就介绍到这里。现在有个问题:如果脚本必须连续执行(不能打断点),怎么才能动态监视某变量的值呢?这时就要用到调试输出了。此命令的格式是这样的:调试输出(x)或traceprint(x),其中x就是要输出的值。程序执行到调试输出时,会把括号内表达式的值(也就是上面的x)显示在输出栏内,但不会像断点那样暂停。会连续不断地执行下去。有朋友可能会觉得,辅助.消息框也可以达到这样的效果啊。但是脚本执行时,消息框的弹出会使脚本暂停,并且生成为exe、用户使用时还会有
7、弹出。而调试输出在生成模式下,根本不会被编译。所以总体上看,traceprint还是有较大优势的。举个例子来说明它的具体用法,代码如下:运行后,输出栏内会显示:,不仅可以看到其值,还可以看到是哪行的traceprint输出了这个值。通过分析输出的值,我们就能知道:在脚本执行至第20行时,a的值是10。在脚本执行至第22行时,b的值为字符串LOVETC。右键单击,在弹出的菜单里也可以复制输出的内容。其实,调试输出还有两种妙用——1、判断某段代码是否执行:例如下面这段代码,输出是否找到某张图:path="C:\pic.bmp"if(!文件.是否存在(path))t
8、raceprint("文
此文档下载收益归作者所有