当前位置: 首页 > news >正文

设计 网站 源码seo免费视频教程

设计 网站 源码,seo免费视频教程,济南营销型网站制作,辽阳专业建设网站导读: LeakDiag是一个在内存泄漏过程中使用的工具,可以用来精确地找到内存泄露一直到代码行。LeakDiag拦截指定内存分配的调用并跟踪各种调用栈,它报告已分配但尚未释放的内存,这一信息允许一个人排除一个内存泄露问题&#xff0c…
导读:

 



LeakDiag是一个在内存泄漏过程中使用的工具,可以用来精确地找到内存泄露一直到代码行。LeakDiag拦截指定内存分配的调用并跟踪各种调用栈,它报告已分配但尚未释放的内存,这一信息允许一个人排除一个内存泄露问题,以精确查看哪些组件进行了该分配。使用正确的调试符号,甚至请求分配的代码行能看见。它使用微软的Detours技术


 LeakDiag支持5种不同的分配:


l  虚拟分配


l  堆分配[默认]


l  线程局部存储(Thread Local StorageTLS指允许一个进程的多个线程存储每个线程所独有的数据的一种Win32机制)分配


l  COM分配(外部和内部)


l  C运行时分配


 


Debugging Tools for Windows是一个全面的,免费包,它包含强大的调试和帮助开发者在他们的日常工作变得更有效率的工具。


该包中的部分工具列表






































































映像


说明


agestore.exe


方便的文件删除工具,根据上次访问日期删除文件。


cdb.exe


基于控制台的用户模式调试程序。几乎完全跟NTSD相同。


dbengprx.exe


轻量级代理服务器,中继两个不同的计算机之间的数据。


dbgrpc.exe


用于查询并显示微软远程过程调用(RPC)信息的工具。


dbgsrv.exe


用于远程调试的进程服务器。


dumpchk.exe


用于验证内存转储文件的工具。


gflags.exe


用于启用和禁用系统检测的配置工具。


kd.exe


内核模式下的调试程序。


kdbgctrl.exe


用于控制和配置一个内核模式下调试连接的工具。


kdsrv.exe


连接服务器在内核模式下调试使用。


kill.exe


基于控制台的工具来终止进程。


logger.exe


此工具记录的一个进程(如函数调用)活动。


logviewer.exe


此工具用于查看logger.exe生成的日志文件。


ntsd.exe


基于控制台的用户模式调试程序。几乎完全跟CDB相同。


remote.exe


用于远程控制控制台程序的工具。


rtlist.exe


远程进程列表查看器。


symchk.exe


用于验证符号文件或从符号服务器下载符号文件的工具。


symstore.exe


用于创建和维护符号存储区的工具。


tlist.exe


此工具列出所有正在运行的进程。


umdh.exe


此工具用于进行内存泄漏检测。


windbg.exe


用户模式和内核模式调试器使用图形用户界面。


 


UMDH是另一种形式的内存泄漏检测工具,是Debugging Tools for Windows一部分,它包括LeakDiag功能的一个子集。LeakDiag能够从各种分配跟踪内存,然而UMDH只能够跟踪来自堆管理器的内存。此外,它要求用户模式栈跟踪在操作系统中被启用。


 


Microsoft Application Verifier是一个运行时对非托管代码的验证工具,来帮助查找细微的编程错误,这些错误可能很难确认一般应用程序测试。


 


Global Flags应用程序(gflags.exe)是Debugging Tools for Windows一部分,是为所有可能选项的一站式配置工具。


 


Process Explorer是最容易被描述为Windows任务管理器一个强大替代。它提供有关所有当前运行在系统上进程的详细信息,能非常直观地显示新创建/终止的进程。


 


Process Monitor是一个Windows高级监控工具,能显示实时文件系统、注册和进程/线程活动。


 


Microsoft Spy++Visual Studio工具中的一个,提供系统进程、线程、窗口和窗口消息的图形视图,能帮助查看窗口属性、相互关系,查找出错进程,记录窗口消息传递。


 


Windows Driver Kits(WDK) 是一个功能强大和完整的构建环境可用于生产开发。此开发环境是真正了不起,因为它包含了大量的功能强大的开发工具(包括编译器和连接器),并免费提供来自微软。


 


Ethereal是一个功能强大、开源的网络协议分析工具,可用于帮助解决跨计算机调用故障。Ethereal可以让你捕捉和分析来自一个实时网络的数据或分析以前创建的捕获文件。


 


DebugDiagIIS诊断工具包的一部分,最初设计为帮助分析IIS性能问题,但它同样可以很好用于任何进程。它有下列特性:


l  进程崩溃/挂起数据收集:附加到一个进程并在崩裂或异常发生时生成转储文件。


l  内存泄漏:将一个DLL注入到要监视的进程,为泄漏和监视随着时间推移的内存分配。


l  一个功能强大的可扩展对象模型 (基于COM):这个出现信息需要分析内存泄漏和进程崩溃/挂起。


 


调试的两种基本类型为用户态(User ModeUM)和内核态(Kernel Mode)调试。


 


用户态调试能够审查程序状态(运行的线程,内存内容,寄存器和开在进程空间的内核对象)代表调试目标。用户态调试也有能力改变状态(改变线程执行秩序,改变寄存器的内容,并改变存储器内容)和同时被通知发生在目标进程里的特别事件。用户态调试也可以审查一个包含给定进程快照的转储文件,也被称为事后调试。Debugging Tools for Windows带有3个基本用户态调试器:cdb.exentsd.exewindbg.exe。所有这三个能够调试控制台应用程序,以及图形化Windows程序。如果有源码或直接机器级调试,所有这三个可用于执行源代码级调试。


l  cdb.exeCDB)是一个基于字符的控制台程序,它能低层次分析Windows用户模式内存和构造,它对调试一个当前正在运行或最近崩溃的程序极为强大,它能附着运行在早期启动阶段(如WinLogonCSRSS)的重要子系统进程而图形调试器不工作在启动进程早期,因为图形子系统尚未初始化。如果目标应用程序是一个控制台程序,目标将与CDB共享控制台窗口。命令行下用cdb p 或者cdb pn 或者cdb –psn 调用,用tlist.exe找出进程ID


l  ntsd.exeNTSD)在各个方面等同于CDB,除了当启动时它会产生一个新的文本窗口。更确切说,CDB是一个控制台应用程序,而NTSD是一个图形用户界面应用程序,它可以创建子集的控制台。像CDBNTSD完全有能力调试控制台应用程序和图形Windows程序,唯一依次它们不能相互替代是在你调试一个用户态系统集成时,在这种情况下,进程内的错误或中断可能会导致所有的控制台应用程序工作不正常,这时可以配置NTSD来运行,它根本没有控制台。ntsd.exe已从Windows Vista及以后系统中移除。


l  windbg.exewindbg)是一个强大的图形界面调试器,它带有同控制台模式调试器的调试能力,增强了自动化例行任务如审查当前调用栈,查看变量(包括C++对象),显示当前寄存器,当符号文件合适设置时它能进行源码级调试。调试期WinDbg工作区的设置能被更改和保存,所有这些能力使WinDbg称为交互式调试用户态应用程序首选工具。


 


内核调试器可以把电脑系统作为一个整体来调查, 每个进程或线程只是数据结构的一个收集,内存地址跟装在系统上的物理内存有直接关系,并且分页出的内存不可访问如果没有加载它进物理内存。内核态调试可以改变整个计算机状态并可被特殊事件通知,这被称为实时内核调试。内核调试器主要用于设备驱动程序开发者,但当调试用户态应用程序时同样也能非常有用。内核调试器能调试运行一个不同于主机平台的目标计算机,调试器会自动侦测目标机正运行的平台。Debugging Tools for Windows带有2个基本内核调试器:kd.exewindbg.exe


l  kd.exeKD)是内核态基于字符的调试器。它能深入分析Windows上内核态活动并可以被用来调试内核态程序和驱动,调试用户态应用程序,或监视操作系统自身行为。


l  windbg.exewindbg)也能进行内核态调试。WinDbg提供了对Windows内核、内核态驱动和运行在该系统上的用户态应用程序的全部代码级调试。它允许你调试任何应用程序或内核模块以一种友好的用户界面,靠跟踪源码、设置基于源内容的断点等等。


 


每个基于NT操作系统有两种不同的程序生成模式,即Free Build(Retail Build)Checked Build (Debug Build)


 


一般,符号文件包含


l  全局变量名和地址


l  函数名,它们的地址和它们的签名


l  FPOFrame Pointer Omission)数据


l  局部变量名和地址


l  符号对应的源文件路径和行数


l  变量,结构等的类型信息


 


出于各种原因,微软使用了几种符号格式:通用对象文件格式(Common Object File FormatCOFF),如VC生成的目标文件(.obj);CodeView format (CV)Program Database format (PDB)是用于保存调试和项目状态信息的文件,通常用Microsoft Visual Studio 进行debug的时候将产生pdb文件,调试的时候默认放在和对应应用程序集相同目录。


注意:从官网下载Symbol 包到目录downsym后,windbg中设置_NT_SYMBOL_PATH一定要是srv*downsym*http://msdl.microsoft.com/download/symbols,让windbg自动下载匹配symbols


 


处理器使用由一个栈寄存器控制的栈存储区来记录返回地址,这里执行必须继续当完成当前函数调用后。x86处理器栈始终向下增长(从高地址向低地址占用),它被存储靠名为esp的栈指针寄存器。


 


【注】


①.   Detours是一个可以在x86,x64,IA64平台上测试任意Win32函数的程序库(可在http://www.microsoft.com/china/CRD/intellectualproperty/Technology_View.aspx?id=38免费获得),Detours可以通过为目标函数重写在内存中的代码从而拦截win32函数,这个过程发生在运行时而且并不持久,Detours软件包还可以将任意的dll和数据片段(称之为有效载荷)注入到任意的win32二进制文件当中。


②.   Free Build生成的是最终用户版本,针对生成的二进制文件进行了彻底的优化,禁用了调试断言,并剥离了调试信息。这样一来使可执行程序文件更小,加载更快,使用的内存也更小。Checked Build 生成的是测试和调试版本。它包含额外的Free Build所没有的错误检查,参数验证和调试信息,Checked Build有助于隔离和跟踪可能导致不可预见的行为的问题,比如内存溢出,不正确的设备配置。虽然Checked Build提供了额外的保护,但与Free Build比较,它需要更多的内存开销和磁盘空间。由于可执行程序包含符号调试信息;调试时要执行附加的代码、参数检查和输出调试诊断信息,从而导致性能下降。


③.   Frame Pointer主要用作在调用栈中存放函数的基址,用寄存器ebp。发生函数调用时,首先将函数参数(arguments入栈,而后执行调用(call)指令将返回地址(return address)入栈;再进入函数执行,第一个指令将调用者基指ebp入栈,然后把栈指针(指向刚入栈的调用者基指)赋值给寄存器ebp,然后esp自减空出栈空间容纳函数的局部变量(先将定义的局部变量入栈,调用完后自动将这些局部变量出栈),然后将函数返回值放入eax,最后出栈恢复调用者基指ebpFPO优化使得没有符号几乎不可能调试程序,因此FPOWindows XP SP2及其以后的操作系统中没被使用。


 


【资源】


Microsoft Portable Executable and Common Object File Format Specificationv8中文版


Playing with the stack


Checked and Free Build Differences


WinDbg / SOS Cheat Sheet


本文转自
http://fafeng.blogbus.com/logs/16115292.html
http://www.zhongyajixie.com/news/4093.html

相关文章:

  • 网络培训的网站建设广东免费网络推广软件
  • 集约化网站建设的函营销网站类型
  • 茶陵网站建设市场调研问卷调查怎么做
  • 软件测试工程师培训杭州网站优化体验
  • 网站建设合同 技术合同网络推广公司经营范围
  • 网站建设费用做做什么科目seo排名优化北京
  • 网站开发前台后台如何制作网站和网页
  • 优秀的定制网站建设服务商网络广告推广
  • wordpress菜单使用2层新站整站优化
  • 制作企业网站素材视频网站推广seo优化
  • wordpress pureseo优化范畴
  • 旅游电子商务网站设计推动防控措施持续优化
  • 佛山市桂城建设局网站打开百度一下的网址
  • 青岛谷歌优化单页站好做seo吗
  • 商标设计网站排行前端seo主要优化哪些
  • 安徽省工程建设信息官方网站深圳网页设计
  • 捡个将军做男友啥网站能看seo查询5118
  • 免费网站app哪个好站长之家seo概况查询
  • 北海哪里做网站谷歌seo怎么做
  • 网站建设 利润seo排名软件价格
  • 国外创意网站设计欣赏正规推广赚佣金的平台
  • 沈阳好的男科医院是哪一家福州百度推广优化排名
  • 一个服务器上建立多个网站吗网络黄页推广软件
  • 做app和做网站哪个容易百度高级搜索入口
  • 梅河口市建设局网站杭州seo搜索引擎优化公司
  • 公司网站建设好处推广方案怎么写
  • 曲靖高端网站制作孔宇seo
  • web网站设计论文百度主页网址
  • 现在流行用什么语言做网站口碑营销公司
  • 网站制作需要多长时间网络搜索关键词排名