1.是一个游戏程序。一只蚂蚁在特定区域运动。键盘控制运动方向。
2.程序运行一段时间,死掉
3.查看任务管理器,各项值都正常
4.内存正常
我的问题:
关于这个问题,不知道哪调试起,不知道是什么原因!
如果可以调试,从哪着手调试?这是什么原因导致的呢?我不知道从哪首着手,解决问题?
最后:
各位早点休息,注意身体,谢谢!
18 个解决方案
#1
没有死循环吗?
看样子是最后按键盘没反应了,是不是你的控制变量逻辑有问题,比如向上跑出了边界?
看样子是最后按键盘没反应了,是不是你的控制变量逻辑有问题,比如向上跑出了边界?
#2
跟踪试调一下,
运行之后,鼠标不动看是否还会挂,
再看变量的类型,范围是否出现异常
运行之后,鼠标不动看是否还会挂,
再看变量的类型,范围是否出现异常
#3
死循环 或者 你的程序重绘出问题了。耗掉了资源。
#4
边界控制的问题?有可能是死循环呀。
#5
我的鼠标不动,不作任何气操作,运行到14300ms 的时候,就会挂掉,就是自动退出。
#6
在怀疑的地方打日志(就是把数据写到文件里),具体这个日志怎么写清楚,就要具体看你的代码了,然后别嫌麻烦的自己读这些日志。
还有就是如果是windows系统的话:
在"my computer"(我的电脑)->"manage(管理)"->"event viewer"->"application",双击相应error看看,不过不知道能不能关什么用。
如果是linux 命令 strings core.XXXX 看调用的栈。
不过,最好的可能还是开头说的打日志。
还有就是如果是windows系统的话:
在"my computer"(我的电脑)->"manage(管理)"->"event viewer"->"application",双击相应error看看,不过不知道能不能关什么用。
如果是linux 命令 strings core.XXXX 看调用的栈。
不过,最好的可能还是开头说的打日志。
#7
写log文件
#8
谢谢你们,都说要写log日志,可我不会写,以前没有碰到这样的情况,我去查一下资料试一下。
#9
没有任何错误信息么?如果没有就像6楼说的那样 开始-》运行-》eventvwr 然后看看有没有错误信息
如果没有任何错误信息 就得想办法调试了,在循环的前 后 都加断点,像渲染这种方法中不太好加断点调试 就可以尝试写log文件,将你认为可以的地方都做上标记,如:
Log( "可疑处开始")
//可疑代码
Log( "可疑处结束")
你监视任务管理器 无异常,应该就不会是内存泄露了
#10
#11
每次能再现的BUG相对来说是比较好处理的,把当时的关键状态写日志是比较好的选择。
先定位问题到函数级别,再深入到代码。
#12
先谢谢这位大哥!
没有任何错误信息就自己退出.我像6楼的那样做了,也没有发现错误信息.
写log日志的方法,我照大哥的方法去试一下呀。谢谢了。
#13
谢谢rabbitlzx 这么祥细和耐心的解答。
#14
不客气,互相帮助,互相提高
#15
把花边函数都//掉,编写测试函数看看。MessageBox();
或者你可以debug直接进去看。
或者你可以debug直接进去看。
#16
我知道怎么用log调试了,感觉log 很好用呀
#17
虽用会用log 调试,可还是不知道怎么样调试出导致程序挂掉的原因,和问题的代码。
#18
问题解决了
FILE *HZK;
后面没有fclose(HZK);
总结经验,由于运行时间导致的问题,可能与指针与内存等有关!
在这里特别要rabbitlzx 大哥,让我学会了一种的调试方法
FILE *HZK;
后面没有fclose(HZK);
总结经验,由于运行时间导致的问题,可能与指针与内存等有关!
在这里特别要rabbitlzx 大哥,让我学会了一种的调试方法
#1
没有死循环吗?
看样子是最后按键盘没反应了,是不是你的控制变量逻辑有问题,比如向上跑出了边界?
看样子是最后按键盘没反应了,是不是你的控制变量逻辑有问题,比如向上跑出了边界?
#2
跟踪试调一下,
运行之后,鼠标不动看是否还会挂,
再看变量的类型,范围是否出现异常
运行之后,鼠标不动看是否还会挂,
再看变量的类型,范围是否出现异常
#3
死循环 或者 你的程序重绘出问题了。耗掉了资源。
#4
边界控制的问题?有可能是死循环呀。
#5
我的鼠标不动,不作任何气操作,运行到14300ms 的时候,就会挂掉,就是自动退出。
#6
在怀疑的地方打日志(就是把数据写到文件里),具体这个日志怎么写清楚,就要具体看你的代码了,然后别嫌麻烦的自己读这些日志。
还有就是如果是windows系统的话:
在"my computer"(我的电脑)->"manage(管理)"->"event viewer"->"application",双击相应error看看,不过不知道能不能关什么用。
如果是linux 命令 strings core.XXXX 看调用的栈。
不过,最好的可能还是开头说的打日志。
还有就是如果是windows系统的话:
在"my computer"(我的电脑)->"manage(管理)"->"event viewer"->"application",双击相应error看看,不过不知道能不能关什么用。
如果是linux 命令 strings core.XXXX 看调用的栈。
不过,最好的可能还是开头说的打日志。
#7
写log文件
#8
谢谢你们,都说要写log日志,可我不会写,以前没有碰到这样的情况,我去查一下资料试一下。
#9
没有任何错误信息么?如果没有就像6楼说的那样 开始-》运行-》eventvwr 然后看看有没有错误信息
如果没有任何错误信息 就得想办法调试了,在循环的前 后 都加断点,像渲染这种方法中不太好加断点调试 就可以尝试写log文件,将你认为可以的地方都做上标记,如:
Log( "可疑处开始")
//可疑代码
Log( "可疑处结束")
你监视任务管理器 无异常,应该就不会是内存泄露了
#10
#11
每次能再现的BUG相对来说是比较好处理的,把当时的关键状态写日志是比较好的选择。
先定位问题到函数级别,再深入到代码。
#12
先谢谢这位大哥!
没有任何错误信息就自己退出.我像6楼的那样做了,也没有发现错误信息.
写log日志的方法,我照大哥的方法去试一下呀。谢谢了。
#13
谢谢rabbitlzx 这么祥细和耐心的解答。
#14
不客气,互相帮助,互相提高
#15
把花边函数都//掉,编写测试函数看看。MessageBox();
或者你可以debug直接进去看。
或者你可以debug直接进去看。
#16
我知道怎么用log调试了,感觉log 很好用呀
#17
虽用会用log 调试,可还是不知道怎么样调试出导致程序挂掉的原因,和问题的代码。
#18
问题解决了
FILE *HZK;
后面没有fclose(HZK);
总结经验,由于运行时间导致的问题,可能与指针与内存等有关!
在这里特别要rabbitlzx 大哥,让我学会了一种的调试方法
FILE *HZK;
后面没有fclose(HZK);
总结经验,由于运行时间导致的问题,可能与指针与内存等有关!
在这里特别要rabbitlzx 大哥,让我学会了一种的调试方法