游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8454|回复: 18

你学会调试程序了吗?

[复制链接]

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20527
发表于 2004-4-26 17:57:00 | 显示全部楼层 |阅读模式
  新人在编写代码的时候难免遇到各式各样的问题,有的复杂有的简单,实际上很多问题并不难解决,有些甚至是你粗心大意导致的后果,有这些问题都没什么,关键是你要学会如何去调试程式,在程式执行过程中遇到问题如何去解决问题,我们来简单说一下常用的调试方式:
  一、断点,就是让我们程式执行一半的时候停止下来,然后我们察看我们定义的变量值是否正确,比如我们人物的坐标,地图的位置等等。在VC下面,你只要简单的按F9就能轻松进行断点操作,在遇到程式未知错误的时候,你甚至可以用这个方法来检测你程式到底当在哪里,然后做进一步的错误分析。
  二、信息输出,就是程式一边执行,一边输出一些信息,当然,这些信息就看你如何设定,用这个方法就可以很及时的了解程序内部的数据变化情况,然后监测程式是否按照我们的预想来执行。
  三、排除法,你实在无法分析哪里出错,你就开始注释,把功能模块一个一个注释掉,看哪个模块出问题,然后再继续深入细化,虽然这个方法土,但却非常有效。

  就先说这三个,以后再补充。。。。 吃饭去了! [em1]

1

主题

42

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2004-4-26 19:11:00 | 显示全部楼层

Re:你学会调试程序了吗?

谢谢,辛苦了!

5

主题

255

帖子

255

积分

中级会员

Rank: 3Rank: 3

积分
255
发表于 2004-4-26 22:26:00 | 显示全部楼层

Re:你学会调试程序了吗?

我也谢

17

主题

208

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
发表于 2004-4-27 07:33:00 | 显示全部楼层

Re:你学会调试程序了吗?

好东西
不过要是能加点实例就更好了
比如在程序中故意弄几个bug出来, 然后演示如何排除

4

主题

18

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2004-4-27 08:33:00 | 显示全部楼层

Re:你学会调试程序了吗?

有时候我不能访问到一些内存数据怎么办??
比如说是memcpy过来的数据
或者用float* a new float[num];声明的数组??

54

主题

2917

帖子

3765

积分

论坛元老

Rank: 8Rank: 8

积分
3765
QQ
发表于 2004-4-28 06:54:00 | 显示全部楼层

Re:你学会调试程序了吗?

有些BUG只有在编译成Release版本才会出现,这该如何调试???

0

主题

3

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2004-4-28 12:15:00 | 显示全部楼层

Re:你学会调试程序了吗?

谢谢

3

主题

140

帖子

140

积分

注册会员

Rank: 2

积分
140
发表于 2004-4-28 16:51:00 | 显示全部楼层

Re:你学会调试程序了吗?

Thanks

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20527
 楼主| 发表于 2004-4-29 10:32:00 | 显示全部楼层

Re: Re:你学会调试程序了吗?

supernext007: Re:你学会调试程序了吗?

有时候我不能访问到一些内存数据怎么办??
比如说是memcpy过来的数据
或者用float* a new float[num];声明的数组??


你的这个问题就相当麻烦了,应该是内存益处或者访问越界,这个就只能通过代码的分析跟踪,看程序是否按照你的方式执行,同时注意每个变量的变化,是否超过你最初设想。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20527
 楼主| 发表于 2004-4-29 10:35:00 | 显示全部楼层

Re: Re:你学会调试程序了吗?

Jeminai: Re:你学会调试程序了吗?

有些BUG只有在编译成Release版本才会出现,这该如何调试???


Release可以尝试把功能简单化,就是上面所说的,去处某些模块,先把问题给缩小,然后可以考虑通过外部输出来检查程式的执行情况,比如做个输出log,把程式的一些关键变化情况输出,然后通过输出信息来进行分析。

如果你的bug是时有时无。。。。。那这种bug就非常难查了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-3 02:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表