下载此文档

功能强大的vc调试器模板.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
功效强大vc6调试器
作者:yy2better
  要成为一位优异软件工程师,调试能力必不可缺。本文将较具体介绍VC6调试器关键使用方法。
  windows平台调试器关键分为两大类:
  1 用户模式(user-mode)调试器:它们全部基于win32 Debugging API,有使用方便界面,关键用于调试用户模式下应用程序。这类调试器包含Visual C++调试器、WinDBG、BoundChecker、Borland C++ Builder调试器、NTSD等。
  2 内核模式(kernel-mode)调试器:内核调试器在CPU和操作系统之间,一旦开启,操作系统也会中止运行,关键用于调试驱动程序或用户模式调试器不易调试程序。这类调试器包含WDEB386、WinDBG和softice等。其中WinDBG和softice也能够调试用户模式代码。
  国外一位调试高手曾说,她70%调试时间是在用VC++,其它时间是使用WinDBG和softice。毕竟,调试用户模式代码,VC6调试器效率是很高。所以,我将首先在本篇介绍VC6调试器关键使用方法,其它调试器使用方法及部分调试技能在后续文章中叙述。
一 位置断点(Location Breakpoint)
  大家最常见断点是一般位置断点,在源程序某一行按F9就设置了一个位置断点。但对于很多问题,这种朴素断点作用有限。譬以下面这段代码:
void CForDebugDlg::OnOK()
{
for (int i = 0; i < 1000; i++) //A
{
int k = i * 10 - 2; //B
SendTo(k); //C
int tmp = DoSome(i); //D
int j = i / tmp; //E
}
}

  实施此函数,程序瓦解于E行,发觉此时tmp为0,假设tmp本不应该为0,怎么这个时候为0呢?所以最好能够跟踪此次循环时DoSome函数是怎样运行,但因为是在循环体内,假如在E行设置断点,可能需要按F5(GO)许数次。这么手要不停按,很痛苦。使用VC6断点修饰条件就能够轻易处理此问题。步骤以下。
  1 Ctrl+B打开断点设置框,以下图:
Figure 1设置高级位置断点
  2 然后选择D行所在断点,然后点击condition按钮,在弹出对话框最下面一个编辑框中输入一个很大数目,具体视应用而定,这里1000就够了。
  3 按F5重新运行程序,程序中止。Ctrl+B打开断点框,发觉此断点后跟随一串说明:...487 times remaining。意思是还剩下487次没有实施,那就是说实施到513(1000-487)次时候犯错。所以,我们按步骤2所讲,更改此断点skip次数,将1000改为513。
  4 再次重新运行程序,程序实施了513次循环,然后自动停在断点处。这时,我们就能够仔细查看DoSome是怎样返回0。这么,你就避免了手指痛苦,节省了时间。
  再看位置断点其它修饰条件。如Figure 1所表示,在“Enter the expression to be evaluated:”下面,能够输入部分条件

功能强大的vc调试器模板 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人读书之乐
  • 文件大小90 KB
  • 时间2021-01-11