Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1465510
  • 博文数量: 596
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 173
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-06 15:50
个人简介

在线笔记

文章分类

全部博文(596)

文章存档

2016年(1)

2015年(104)

2014年(228)

2013年(226)

2012年(26)

2011年(11)

分类: LINUX

2013-06-07 09:58:37

一、初步定位,必须找到问题代码的大致位置
方法:
1.注释掉可疑的代码

  1. void get_display()
  2. {
  3. int i, j;
  4. ...
  5. #if 0
  6. for ( i = 0; ; i++ )
  7. {
  8. j = i;
  9. }
  10. #endif
  11. ...
  12. }
 二、关键函数内定位
1.有限次处理
外面指定处理次数,
局部处理,在中间返回

  1. void get_display()
  2. {
  3. static int _stop = 0;
  4. int i, j;
  5. ...


  6. for ( i = 0; ; i++ )
  7. {
  8. j = i;
  9. }
  10. if ( _stop ++ >= 2 ) return ;
  11. ...
  12. }

2.定位到一个自我感觉与BUG无关的代码,但是还是要修改里面的关键数据,实际测试。
3.定位到函数,要把函数的每行代码都看下来,不能看头不看尾

  1. void get_display()
  2. {
  3. int i, j;
  4. ...


  5. for ( i = 0; ; i++ )
  6. {
  7. j = i;
  8. }
  9. ...    //不能在只看到这里就结束
  10. g_display = i;
  11. }

4.不懂的函数要查

  1. void get_display()
  2. {
  3. int i, j;
  4. ...


  5. for ( i = 0; ; i++ )
  6. {
  7. j = i;
  8. }
  9. ...
  10. XSetClipRectangle(m_display, m_gc, 0, 0, 1024, 768);
  11. g_display = i;
  12. }
查查这个函数XSetClipRectangle,
改改里面的值,看看有什么效果。XSetClipRectangle(m_display, m_gc, 0, 0, 0, 0);

阅读(847) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~