一、初步定位,必须找到问题代码的大致位置
方法:
1.注释掉可疑的代码
-
void get_display()
-
{
-
int i, j;
-
...
-
#if 0
-
for ( i = 0; ; i++ )
-
{
-
j = i;
-
}
-
#endif
-
...
-
}
二、关键函数内定位
1.有限次处理
外面指定处理次数,
局部处理,在中间返回
-
void get_display()
-
{
-
static int _stop = 0;
-
int i, j;
-
...
-
-
-
for ( i = 0; ; i++ )
-
{
-
j = i;
-
}
-
if ( _stop ++ >= 2 ) return ;
-
...
-
}
2.定位到一个自我感觉与BUG无关的代码,但是还是要修改里面的关键数据,实际测试。
3.定位到函数,要把函数的每行代码都看下来,不能看头不看尾
-
void get_display()
-
{
-
int i, j;
-
...
-
-
-
for ( i = 0; ; i++ )
-
{
-
j = i;
-
}
-
... //不能在只看到这里就结束
-
g_display = i;
-
}
4.不懂的函数要查
-
void get_display()
-
{
-
int i, j;
-
...
-
-
-
for ( i = 0; ; i++ )
-
{
-
j = i;
-
}
-
...
-
XSetClipRectangle(m_display, m_gc, 0, 0, 1024, 768);
-
g_display = i;
-
}
查查这个函数XSetClipRectangle,
改改里面的值,看看有什么效果。XSetClipRectangle(m_display, m_gc, 0, 0, 0, 0);
阅读(875) | 评论(0) | 转发(0) |