动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.C++中的健壮指针和资源管理.
.C语言教程第八章:枚举,位运算.
.集合类:VBA集合对象的安全包装.
.用游戏串起程序员的基本功之三.
.C语言初学者入门讲座 第六讲 分支.
.Windows的动态链接库原理及使用1.
.VC++编程隐藏计算机中的鼠标.
.switch语句的“不准遍历”.
.高质量C++/C编程指南(八).
.C++中union的应用剖析.
.在BCB中实现TRichEdit的自动格式.
.C语言编程常见问题解答之调试.
.C++远程关机API的学习过程.
.在VBA中调用AUTOCAD打印文件.
.自定义控件(模板+数据绑定).
.菜鸟图解简单链表.
.求阶乘算法(0---10000)标准C++.
.gdb常用命令.
.回文数的形成.
.C++中函数指针数组的妙用.

用VSTS代码验证工具捕捉C/C++错误

发表日期:2008-3-8 |


  对一个C++本机代码(Native Code)开发者来说,Visual Studio Team System对整个软件开发周期都提供了支持,VSTS源代码注释使开发者在静态代码分析或单元测试中,可以用方法参数前置或后置的有效条件来注释方法,且当注释违例时,会有相应的编译器警告,所以,可以这样说,VSTS提供了许多功能来帮助本机程序开发者。本文将着眼于VSTS验证程序,它是一个分析工具,用于监控非托管代码的执行,并可以发现如不正确的内存分配、句柄使用等等错误。   与此相比,动态分析是检查那些传递给系统函数的要害变量值,以发现问题的,当方法被调用时,将会探测到某些非法参数,并上报给开发者;而使用非法参数时,某些问题不能被发现,只会在后续情况如内存崩溃、非正常程序退出等情况显现出来。   以应用程序验证程序开始   启动应用程序验证程序是一件非常简单的事,只需选择“调试-以应用程序验证程序开始”即可,如图1所示。   图1:启动应用程序验证程序   第一次使用应用程序验证程序时,Visual Studio会提示你下载一个额外的DLL,此DLL将用于检查句柄及堆,可能需要治理员权限来安装这个补丁。   对应用程序验证程序的大多数使用者来说,最难之处在于要记住运行这个验证程序,而不是启动一次标准的调试会话。假定在使用验证程序时,也可以使用标准调试,建议启动验证程序会话(Shift+Alt+F5),虽然比启动调试会话(F5)多按了两个键,但还是值得的。这样一来,就可以在每次产生调试会话时,都充分利用验证程序了。
  当应用程序验证程序探测到一个问题时,它会停止执行流程,并显示一个如下的对话框,如图2所示:   图2:验证程序停止信息   通常来说,诊断此类问题一般为查看能导致验证程序停止执行的句柄、锁、或堆指针信息,并回溯到崩溃发生之前的执行点。然而,这不会总是最简单的调试方法,在堆或文件崩溃是问题的唯一原因时,你不一定记得起来要启动一个调试过程。   当验证程序停止执行流程时,一个具体的问题描述也会被添加到任务视图中,如图3所示。任务视图中的信息便于观看,而图2的对话框则需要先“消失”,开发者才能进入到调试器检查变量值。 点击放大此图片   图3:验证程序任务列表视图   此处多说一下任务列表,它可显示一个单独的应用程序验证程序窗口,其对停止事件提供了最具体的信息(见图4)。 点击放大此图片   图4:验证程序窗口
  应用程序验证程序检查   VSTS应用程序验证程序主要专注于以下三个核心领域:操作系统句柄、锁、堆内存。以上三种类型的检查,句柄是最简单的——应用程序验证程序会检查句柄以保证它不为空(null)、句柄指向了正确的操作系统对象类型、句柄未用于DLLMain函数中的等待操作(这可是解决死锁问题的最好方法)。   锁检查就包括以下方面:   Ø 检查初始化操作是否未完成或过头了   Ø 释放保持锁的内存或卸载相应模块   Ø 锁是否具有非法所有者   Ø 已损坏的锁   堆检查也遵循上述两种检查的相近模式,将会检查是否有损坏的堆、非法的堆删除操作、非法的堆句柄、堆溢出。   配置应用程序验证程序   应用程序验证程序需要进行配置的地方非常少,如图5所示: 点击放大此图片   图5:验证程序配置   除去可以把这三个主要的验证功能打开或关闭之外,你还可以与保护页(guard page)一起使用堆验证,或直接指定堆保护页的位置(保护页提供了对崩溃最初的探测,以防止其占用更多的内存)。堆保护页的默认位置为分配区域的末尾,它可以探测到缓冲区溢出;然而,假如想要探测非常罕见的某些缓冲区欠载(即底面通过),你也能把它挪到分配区域块的起始处。   应用程序验证工具是VSTS众多工具中最轻易使用的一个,只需简单地选择此菜单项就可以开始你的调试会话了,让它来帮助你追踪那些讨厌的本机代码问题吧。
上一篇:C/C++:如何在程序中加载JPG图片? 人气:885
下一篇:基于VC++的OpenGL编程讲座之概述 人气:1838
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-12-4 PhpCMS2008 bulid 081203 简体中
2008-12-4 Menalto Gallery v1.5.10 多国语
2008-12-4 Phpcms2008 bulid 081203 简体中
2008-12-4 乘风多用户计数器 v3.92 (Acc)
2008-12-4 乘风多用户计数器 v3.92 (Sql)
2008-12-4 BBSxp 2008 8.0.5 SP2 Build 081
2008-12-4 ASBLOG v2.5 bulid 081118(1201)
2008-12-4 非零坊幽默短信 v3.4
2008-12-4 红茶巴士(公交)查询系统 v3.0
2008-11-29 Tencent Traveler 4.4
2008-11-29 龙卷风网络收音机 v3.0.0.0
2008-11-29 Intel Chipset Software Install
2008-11-29 TweakVI 1.0 Build 1100
2008-11-29 Opera 9.62 Build 10469
2008-11-29 MPlayer WW编译版 SVN-r28044(20
2008-11-29 NetTools网络工具v1.0.0破解版
2008-11-29 3DGallery三维体验1.1破解版
2008-11-29 SecretBook保密本v1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | OPEN参数生成器 | 弹出式窗口代码产生器 | 密码登录生成器 | 在线按钮生成器 | Meta标签生成器 | 多色彩特效字代码生成器 | 网页代码调试器 | 在线FTP登陆 | Flash取色器 | 配色代码对照表 | 配色辞典 | CSS生成器 | 广告代码 | 框架网页代码生成器 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | 在线调色板 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 元素周期表 | 健康查询 | 世界时间 | 万年历 | 二十四节气 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2009 www.knowsky.com All rights reserved | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成