TC官方合作论坛

标题: tc版本崩溃的问题 [打印本页]

作者: 小欧1023    时间: 2014-12-19 03:45
标题: tc版本崩溃的问题
本帖最后由 小欧1023 于 2014-12-19 03:47 编辑

在程序运行很长一段时间后,脚本还是出现频繁的崩溃
这个问题困扰我1个多月了,经过长时间调试,发现所有的崩溃地点都是在一个 功能 结束之后准备进入下个功能时发生的
几乎可以排除代码的问题,因为都是运行很久以后出现,不是刚刚启动程序就崩溃

崩溃的点都是在A功能刚刚结束,准备进入B功能时发生的,我做了详细的日志输出

90%的情况是这样的时候出现的
而且出现崩溃后提示的代码全部一模一样,
真心求教育,
跪求给小弟指出哪方面的原因,

空间 啊

功能 开始()
   啊.a()// 就是这里,至少我理解的A结束了,准备进入B功能的时候,程序崩溃了
  啊.B()
功能结束
功能 a()
功能结束

功能 B()
功能结束
空间结束

QQ图片20141219034015.png (3.23 KB, 下载次数: 4)

QQ图片20141219034015.png

作者: 唯一小哥    时间: 2014-12-19 04:49
AB之间有没有 调试输出???
这种写法不只你一个哦
作者: 君凌天下    时间: 2014-12-19 06:40
哥,调试没用,你应该把TC的官方软件卸载之后,重启电脑再重新安装最新版本,再运行你的那个脚本就不会出现这种情况了!!!
作者: dear    时间: 2014-12-19 13:59
看错误代码是内存崩溃. 不一定是由TC版本造成的.
作者: 小欧1023    时间: 2014-12-21 18:12
君凌天下 发表于 2014-12-19 06:40
哥,调试没用,你应该把TC的官方软件卸载之后,重启电脑再重新安装最新版本,再运行你的那个脚本就不会出现这种 ...

我这不是调试,我是直接运行在了测试的机器上,
我准备按照您说的方法卸载老版本,重新装下tc试试
被这个问题困扰很久了,好蛋疼!!
作者: 小欧1023    时间: 2014-12-21 18:25
dear 发表于 2014-12-19 13:59
看错误代码是内存崩溃. 不一定是由TC版本造成的.

同样的代码,我更换11.26的那个版本几乎没出现过这个情况,但是那个版本有个弊端,他会偶尔报那个未知错误的情况,...因为这个内存报错不是同一个程序或者地点报错,是好多地点,随机的报错,所以一直没找到原因,
作者: 君凌天下    时间: 2014-12-22 07:00
还没有解决?
作者: 528522861    时间: 2015-1-28 10:15
小欧1023 发表于 2014-12-21 18:25
同样的代码,我更换11.26的那个版本几乎没出现过这个情况,但是那个版本有个弊端,他会偶尔报那个未知错误的 ...

问题解决了吗,我也遇到同样的问题,希望您能指导一下,经过各种测试发现,运行几个小时后,总是某个线程结束调用另外一个线程时停止不动了,希望您能帮帮我,
作者: 小欧1023    时间: 2015-1-28 13:15
528522861 发表于 2015-1-28 10:15
问题解决了吗,我也遇到同样的问题,希望您能指导一下,经过各种测试发现,运行几个小时后,总是某个线程 ...

多数是因为代码补严谨造成的,比方从A,跳到B功能,如果你一直连续跳,而没有结束掉A,那么很多功能长此下去会造成成百甚至上千个功能在运行着 肯定会卡死崩溃

按键似乎没这方面的问题,我按键都是这样 A,跳B,B跳c 无需结束A,脚本运行几个星期都不会出错.tc貌似运行没多久就会报错,所以一定记住 在你用A功能到B时,尽最大的可能去实现 在A结束后才去B
作者: 528522861    时间: 2015-1-28 14:26
小欧1023 发表于 2015-1-28 13:15
多数是因为代码补严谨造成的,比方从A,跳到B功能,如果你一直连续跳,而没有结束掉A,那么很多功能长此下去会 ...

比如:

功能 a()
这是功能a里的代码省略了......
线程.开启(“功能b”。“”)//在功能a结束前调用功能b,这样的话,功能a不就是自动关闭了吗
功能结束

功能 b()//总是在被调用的时候卡住,
功能结束
作者: 小欧1023    时间: 2015-1-28 14:58
528522861 发表于 2015-1-28 14:26
比如:

功能 a()

我的意思是不要镶嵌太多 你跳1,2个是没问题的 但是 不要一直无限循环下去跳

你线程开启功能A

功能A,完成可以当作1个 主功能区

功能 A
  B
C
D
都在这里面调用,A不结束,但是你B,C,D尽量不要在镶嵌
就是镶嵌了 也一定记得要跳出来
就好像 你每个功能无限的跳 就好像1个死循环的 递归算法一样  你可以试试 死循环的递归,tc运行没多久就卡死了
功能结束
作者: 528522861    时间: 2015-1-28 15:17
小欧1023 发表于 2015-1-28 14:58
我的意思是不要镶嵌太多 你跳1,2个是没问题的 但是 不要一直无限循环下去跳

你线程开启功能A

我就是
功能a结束前调用功能b, 功能b结束前调用功能c,功能c结束前调用功能d,功能d结束前调用功能a ,就是这样调用,谢谢你的回答,虽然我还是不懂




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1