| 订阅 | 在线投稿
分享
 
 
当前位置: 王朝网络 >> c/c++ >> 用VSTS代码验证工具捕捉C/C++错误 yong VSTS dai ma yan zheng gong ju bu zhuo C/C++ cuo wu
 

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

2008-06-01 02:07:56 编辑來源:互联网 繁體版 评论
 
 
本文为【用VSTS代码验证工具捕捉C/C++错误】的汉字拼音对照版显示拼音
  duiyigeC++benjidaima(Native Code)kaifazhelaishuoVisual Studio Team SystemduizhenggeruanjiankaifazhouqidoutigonglezhichiVSTSyuandaimazhushi使shikaifazhezaijingtaidaimafenxihuodanyuanceshizhongkeyiyongfangfashenshuqianzhihuohouzhideyouxiaotiaojianlaizhushifangfaqiedangzhushiweilishihuiyouxiangyingdebianyiqijinggaosuoyikeyizheyangshuoVSTStigonglexuduogongnenglaibangzhubenjichengxukaifazhebenwenjiangzheyanyuVSTSyanzhengchengxutashiyigefenxigongjuyongyujiankongfeituoguandaimadezhixingbingkeyifaxianrubuzhengquedeneicunfenpeijubing使shiyongdengdengcuowu

  yucixiangbidongtaifenxishijianchanaxiechuandigeixitonghanshudeyaohaibianliangzhiyifaxianwentidedangfangfabeitiaoyongshijianghuitancedaomouxiefeifashenshubingshangbaogeikaifazhe;er使shiyongfeifashenshushimouxiewentibunengbeifaxianzhihuizaihouxuqingkuangruneicunbengkuifeizhengchangchengxu退tuichudengqingkuangxianxianchulai

  yiyingyongchengxuyanzhengchengxukaishi

  qidongyingyongchengxuyanzhengchengxushiyijianfeichangjiandandeshizhixuxuanzetiaoshi-yiyingyongchengxuyanzhengchengxukaishijikerutu1suoshi

  tu1qidongyingyongchengxuyanzhengchengxu

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


  diyici使shiyongyingyongchengxuyanzhengchengxushiVisual StudiohuitishinixiazaiyigeewaideDLLciDLLjiangyongyujianchajubingjiduikenengxuyaozhiliyuanquanxianlaianzhuangzhegebuding

  duiyingyongchengxuyanzhengchengxudedaduoshu使shiyongzhelaishuozuinanzhichuzaiyuyaojizhuyunxingzhegeyanzhengchengxuerbushiqidongyicibiaozhundetiaoshihuihuajiadingzai使shiyongyanzhengchengxushiyekeyi使shiyongbiaozhuntiaoshijianyiqidongyanzhengchengxuhuihua(Shift+Alt+F5)suiranbiqidongtiaoshihuihua(F5)duoanlelianggejiandanhuanshizhidedezheyangyilaijiukeyizaimeicichanshengtiaoshihuihuashidouchongfenliyongyanzhengchengxule

  dangyingyongchengxuyanzhengchengxutancedaoyigewentishitahuitingzhizhixingliuchengbingxianshiyigeruxiadeduihuakuangrutu2suoshi

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


  tu2yanzhengchengxutingzhixinxi

  tongchanglaishuozhenduancileiwentiyibanweichakannengdaozhiyanzhengchengxutingzhizhixingdejubingsuohuoduizhizhenxinxibinghuisudaobengkuifashengzhiqiandezhixingdianranerzhebuhuizongshizuijiandandetiaoshifangfazaiduihuowenjianbengkuishiwentideweiyiyuanyinshinibuyidingjideqilaiyaoqidongyigetiaoshiguocheng

  dangyanzhengchengxutingzhizhixingliuchengshiyigejutidewentimiaoshuyehuibeitianjiadaorenwushituzhongrutu3suoshirenwushituzhongdexinxi便bianyuguankanertu2deduihuakuangzexuyaoxianxiaoshikaifazhecainengjinrudaotiaoshiqijianchabianliangzhi

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


  tu3yanzhengchengxurenwuliebiaoshitu

  cichuduoshuoyixiarenwuliebiaotakexianshiyigedandudeyingyongchengxuyanzhengchengxuchuangkouqiduitingzhishijiantigonglezuijutidexinxi(jiantu4)

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


  tu4yanzhengchengxuchuangkou

  yingyongchengxuyanzhengchengxujiancha

  VSTSyingyongchengxuyanzhengchengxuzhuyaozhuanzhuyuyixiasangegaixinlingyucaozuoxitongjubingsuoduineicunyishangsanzhongleixingdejianchajubingshizuijiandandeyingyongchengxuyanzhengchengxuhuijianchajubingyibaozhengtabuweikong(null)jubingzhixianglezhengquedecaozuoxitongduixiangleixingjubingweiyongyuDLLMainhanshuzhongdedengdaicaozuo(zhekeshijiejuesisuowentidezuihaofangfa)

  suojianchajiubaokuoyixiafangmian

  Ø jianchachushihuacaozuoshifouweiwanchenghuoguotoule

  Ø shifangbaochisuodeneicunhuoxiezaixiangyingmokuai

  Ø suoshifoujuyoufeifasuoyouzhe

  Ø yisunhuaidesuo

  duijianchayezunxunshangshuliangzhongjianchadexiangjinmoshijianghuijianchashifouyousunhuaideduifeifadeduishanchucaozuofeifadeduijubingduiyichu

  peizhiyingyongchengxuyanzhengchengxu

  yingyongchengxuyanzhengchengxuxuyaojinxingpeizhidedifangfeichangshaorutu5suoshi

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


  tu5yanzhengchengxupeizhi

  chuqukeyibazhesangezhuyaodeyanzhenggongnengdakaihuoguanbizhiwainihuankeyiyubaohuye(guard page)yiqi使shiyongduiyanzhenghuozhijiezhidingduibaohuyedeweizhi(baohuyetigongleduibengkuizuichudetanceyifangzhiqizhanyonggengduodeneicun)duibaohuyedemorenweizhiweifenpeiquyudemoyitakeyitancedaohuanchongquyichu;ranerjiaruxiangyaotancefeichanghanjiandemouxiehuanchongquqianzai(jidimiantongguo)niyenengbatanuodaofenpeiquyukuaideqishichu

  yingyongchengxuyanzhenggongjushiVSTSzhongduogongjuzhongzuiqingyi使shiyongdeyigezhixujiandandixuanzecicaidanxiangjiukeyikaishinidetiaoshihuihualerangtalaibangzhunizhuizongnaxietaoyandebenjidaimawentiba原文】【拼音
 
 
 
上一篇《C++跨平台游戏开发之ClanLibSDK》
下一篇《C/C++:如何在程序中加载JPG图片?》
 
 
 
 
 
 
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

如何磨出破洞牛仔裤?牛仔裤怎么剪破洞?

把牛仔裤磨出有线的破洞 1、具体工具就是磨脚石,下面垫一个硬物,然后用磨脚石一直磨一直磨,到把那块磨薄了,用手撕开就好了。出来的洞啊很自然的。需要猫须的话调几...

我就是扫描下图得到了敬业福和爱国福

先来看下敬业福和爱国福 今年春节,支付宝再次推出了“五福红包”活动,表示要“把欠大家的敬业福都还给大家”。 今天该活动正式启动,和去年一样,需要收集“五福”...

冰箱异味产生的原因和臭味去除的方法

有时候我们打开冰箱就会闻到一股异味,冰箱里的这种异味是因为一些物质发出的气味的混合体,闻起来让人恶心。 产生这些异味的主要原因有以下几点。 1、很多人有这种习...

 
 
  对一个C++本机代码(Native Code)开发者来说,Visual Studio Team System对整个软件开发周期都提供了支持,VSTS源代码注释使开发者在静态代码分析或单元测试中,可以用方法参数前置或后置的有效条件来注释方法,且当注释违例时,会有相应的编译器警告,所以,可以这样说,VSTS提供了许多功能来帮助本机程序开发者。本文将着眼于VSTS验证程序,它是一个分析工具,用于监控非托管代码的执行,并可以发现如不正确的内存分配、句柄使用等等错误。   与此相比,动态分析是检查那些传递给系统函数的要害变量值,以发现问题的,当方法被调用时,将会探测到某些非法参数,并上报给开发者;而使用非法参数时,某些问题不能被发现,只会在后续情况如内存崩溃、非正常程序退出等情况显现出来。   以应用程序验证程序开始   启动应用程序验证程序是一件非常简单的事,只需选择“调试-以应用程序验证程序开始”即可,如图1所示。   图1:启动应用程序验证程序 [url=http://www.wangchao.net.cn/bbs/hydetail_1785414.html][img]http://image.wangchao.net.cn/it/1323423511900.jpg[/img][/url]   第一次使用应用程序验证程序时,Visual Studio会提示你下载一个额外的DLL,此DLL将用于检查句柄及堆,可能需要治理员权限来安装这个补丁。   对应用程序验证程序的大多数使用者来说,最难之处在于要记住运行这个验证程序,而不是启动一次标准的调试会话。假定在使用验证程序时,也可以使用标准调试,建议启动验证程序会话(Shift+Alt+F5),虽然比启动调试会话(F5)多按了两个键,但还是值得的。这样一来,就可以在每次产生调试会话时,都充分利用验证程序了。   当应用程序验证程序探测到一个问题时,它会停止执行流程,并显示一个如下的对话框,如图2所示: [url=http://www.wangchao.net.cn/bbs/hydetail_1785414.html][img]http://image.wangchao.net.cn/it/1323423527149.gif[/img][/url]   图2:验证程序停止信息   通常来说,诊断此类问题一般为查看能导致验证程序停止执行的句柄、锁、或堆指针信息,并回溯到崩溃发生之前的执行点。然而,这不会总是最简单的调试方法,在堆或文件崩溃是问题的唯一原因时,你不一定记得起来要启动一个调试过程。   当验证程序停止执行流程时,一个具体的问题描述也会被添加到任务视图中,如图3所示。任务视图中的信息便于观看,而图2的对话框则需要先“消失”,开发者才能进入到调试器检查变量值。 [url=http://www.wangchao.net.cn/bbs/hydetail_1785414.html][img]http://image.wangchao.net.cn/it/1323423527267.gif[/img][/url]   图3:验证程序任务列表视图   此处多说一下任务列表,它可显示一个单独的应用程序验证程序窗口,其对停止事件提供了最具体的信息(见图4)。 [url=http://www.wangchao.net.cn/bbs/hydetail_1785414.html][img]http://image.wangchao.net.cn/it/1323423527338.gif[/img][/url]   图4:验证程序窗口   应用程序验证程序检查   VSTS应用程序验证程序主要专注于以下三个核心领域:操作系统句柄、锁、堆内存。以上三种类型的检查,句柄是最简单的——应用程序验证程序会检查句柄以保证它不为空(null)、句柄指向了正确的操作系统对象类型、句柄未用于DLLMain函数中的等待操作(这可是解决死锁问题的最好方法)。   锁检查就包括以下方面:   Ø 检查初始化操作是否未完成或过头了   Ø 释放保持锁的内存或卸载相应模块   Ø 锁是否具有非法所有者   Ø 已损坏的锁   堆检查也遵循上述两种检查的相近模式,将会检查是否有损坏的堆、非法的堆删除操作、非法的堆句柄、堆溢出。   配置应用程序验证程序   应用程序验证程序需要进行配置的地方非常少,如图5所示: [url=http://www.wangchao.net.cn/bbs/hydetail_1785414.html][img]http://image.wangchao.net.cn/it/1323423527476.jpg[/img][/url]   图5:验证程序配置   除去可以把这三个主要的验证功能打开或关闭之外,你还可以与保护页(guard page)一起使用堆验证,或直接指定堆保护页的位置(保护页提供了对崩溃最初的探测,以防止其占用更多的内存)。堆保护页的默认位置为分配区域的末尾,它可以探测到缓冲区溢出;然而,假如想要探测非常罕见的某些缓冲区欠载(即底面通过),你也能把它挪到分配区域块的起始处。   应用程序验证工具是VSTS众多工具中最轻易使用的一个,只需简单地选择此菜单项就可以开始你的调试会话了,让它来帮助你追踪那些讨厌的本机代码问题吧。
󰈣󰈤
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
桌球宝贝_性感在蔓延(3)
桌球宝贝_性感在蔓延(2)
银杏树下清纯女孩(9)
银杏树下清纯女孩(8)
痞子的甘南日记
疑是银河落九天
雪域坝上四——纯美色
冬日恋歌——西城杨柳弄轻柔
 
>>返回首页<<
 
 
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 热帖排行
 
 
 
 
©2005- 王朝网络 版权所有