
windbg软件调试
blacet
这个作者很懒,什么都没留下…
展开
-
WinDBG常用断点命令
WinDBG常用断点命令WinDBG提供了多种设断点的命令:bp命令是在某个地址下断点, 可以 bp 0x7783FEB 也可以bp MyApp!SomeFunction。 对于后者,WinDBG 会自动找到MyApp!SomeFunction对应的地址并设置断点。 但是使用bp的问题在于:1)当代码修改之后,函数地址改变,该断点仍然保持在相同位置,不一定继续有效; 2)WinD...转载 2020-01-03 13:51:57 · 1583 阅读 · 1 评论 -
用windbg 中断系统api 函数查找和调试问题,实例总结
工作中,经常遇到因窗口焦点莫名丢失或转移的bug,我们知道设置焦点的系统API 函数是SetFocus,因此,我想断到调用这个函数的地方。所以,需要查看这个api 在哪个dll里,MSDN描述这个api在User32.dll里,而当尝试中断时,发现断点没用,用depends.exe查看user32.dll的导出函数,确实有这个api函数,可能真实的API函数可能另有一个,微软利用某...原创 2020-01-03 15:18:48 · 2229 阅读 · 0 评论 -
windows内存结构概述(转)
windows内存结构概述 13.1 Windows的虚拟地址空间安排13.1.1虚拟地址空间的分区(即虚拟地址空间布局) 进程的地址空间划分 分区 x86 32位 Windows 3GB用户模式下的x86 32位Windows X64 64位 Windows ...转载 2018-09-30 18:29:27 · 1623 阅读 · 0 评论 -
从点击Button到弹出一个MessageBox, 背后发生了什么(转)
从点击Button到弹出一个MessageBox, 背后发生了什么思考一个最简单的程序行为:我们的Dialog上有一个Button, 当用户用鼠标点击这个Button时, 我们弹出一个MessageBox。 这个看似简单的行为, 谁能说清楚它是如何运行起来的,背后究竟发生了什么? 下面是我个人尝试的解答: (1)我们的鼠标点击事件到达设备的驱动程序, 驱动程序把消息放...转载 2018-11-06 09:42:29 · 412 阅读 · 0 评论 -
Windbg实用手册(转)
Windbg实用手册Windbg工作中用的不多,所以命令老是记不住,每次使用都要重新查命令,挺烦。趁这次培训的机会好好测试和总结了一下,下次再用就方便多了。在这里一起共享一下,如果有错误,请指正。 基本知识和常用命令(1) Windbg下载地址http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx...转载 2018-11-02 17:09:21 · 593 阅读 · 0 评论 -
基于WinDbg的内存泄漏分析
基于WinDbg的内存泄漏分析在前面C++中基于Crt的内存泄漏检测一文中提到的方法已经可以解决我们的大部分内存泄露问题了,但是该方法是有前提的,那就是一定要有源代码,而且还只能是Debug版本调试模式下。实际上很多时候我们的程序会用到第三方没有源代码的模块,有些情况下我们甚至怀疑系统模块有内存泄露,但是有没有证据,我们该怎么办? 这时我们就要依靠无所不能的WinDbg了。WinDbg的!h...转载 2018-11-07 16:12:22 · 3448 阅读 · 0 评论 -
windbg调试命令
windbg调试命令 #调试命令窗口 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#使用gflags.exe工具(在windbg所在目录下),让某个进程启动时,拉取windbg进行调试如下截图:当名称为captcomm.exe的进程启动时,拉起windbg调试也可通过脚本命令来实现:...转载 2018-11-05 19:05:40 · 5637 阅读 · 0 评论 -
Windbg 调试程序崩溃问题(转)
https://bbs.pediy.com/thread-217260.htm配置好PDB路径先!analyze -v,确定线程是哪个打开堆栈窗口,这一步配好源文件路径再.ecxr 恢复堆栈,这时候堆栈窗口应该可以看到崩溃时的正确堆栈在堆栈窗口选择显示源文件和源文件参数最好用最新的windbg,5月份出品的,windeb10.0.15063.173版本以后的版本如果栈没...转载 2019-01-23 10:14:45 · 1611 阅读 · 0 评论 -
WinDBG加载符号表的一点心得体会(转载)
WinDBG加载符号表的一点心得体会 Posted on2011-03-25 21:38Biffo Lee阅读(12246) 评论(3)编辑收藏 WinDBG无法加载符号表是很痛苦的事情,明明符号表的路径已经加载进去了,可是还是无法加断点,下面直接进入主题: 符号表无法加载,无法触发断点。 1、检查sympath是否正确...转载 2019-08-06 15:31:37 · 3272 阅读 · 0 评论 -
PDB文件:每个开发人员都必须知道的(转载)
PDB文件:每个开发人员都必须知道的PDB Files: What Every Developer Must Knowhttp://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspxPDB文件:每个开发人员都必须知道的一 什么是...转载 2019-08-06 15:34:04 · 806 阅读 · 0 评论 -
WinDbg符号文件加载(转载)
WinDbg符号文件加载WinDbg符号文件加载skyworth2010-07-02, 15:13 下午pdb文件在d:\symcache根目录,但是始终无法加载,以下是windbg输出,为什么呢?iptsvr.pdb\8439F7A3C92A4014BCFD948DE875CD531\iptsvr.pdb 这个尤其奇怪,符号文件在symcache目录下0:034> .relo...转载 2019-08-06 15:35:21 · 2573 阅读 · 0 评论 -
win32堆及内部结构(转)
win32堆及内部结构目录默认堆堆内部结构堆段堆块堆分配和释放实例前端分配器旁视列表前端分配器和低碎片前端分配器低碎片前端分配器后端分配器内存分配步骤:内存释放过程默认堆Windows在创建一个新的进程时会为该进程创建第一个堆,被称为进程的默认堆。默认堆的句柄会被保存在进程环境块_PEB的ProcessHeap字段中。要获得_PE...转载 2018-09-30 15:30:38 · 630 阅读 · 1 评论 -
windbg-!address、!vadump、!vprot(读取内存状态)(转)
转载地址:windbg-!address、!vadump、!vprot(读取内存状态)目录!address!vadump!vprot!address!address 扩展显示目标进程或目标机使用的内存信息这个学习起来比较简单:我们直接使用!address -?就可以找到它的使用说明:0:000> !address -?!address ...转载 2018-09-30 15:06:52 · 1040 阅读 · 0 评论 -
Windbg调试命令详解
Windbg调试命令详解发表于2013 年 8 月 23 日由张佩转载注明>> 【作者:张佩】【原文:http://www.yiiyee.cn/Blog】1. 概述用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是:cdb.exe、ntsd.exe、kd.exe和Windbg.exe。其中cdb.exe和ntsd.exe只能调试用户程序,Kd.exe...转载 2018-05-24 16:05:14 · 929 阅读 · 0 评论 -
软件调试总结及分享
1、 软件调试对软件开发的意义。通过软件调试,我们可以更深刻的理解语言深处的实现原理。如利用Windbg深入理解变量的存储模型:我们可以通过windbg验证查看C++书上关于各种类型变量存储区域的说明,简单来说就是全局变量和静态变量会被编译到可执行文件的数据节(分只读和可读写)中, 非静态的局部变量则分配在堆栈(stack)上,而new(malloc)出来的内存则分配在堆(heap)上。有人做过...原创 2018-05-23 11:46:33 · 8819 阅读 · 0 评论 -
windbg调试入门
windbg调试入门转载:http://www.cnblogs.com/kekec/archive/2012/12/02/2798020.html使用前首先设置符号表,菜单File=>symbol File Path。 如设置为:srv*C:\Program Files\Debugging Tools for Windows (x86)\sym*http://msdl.转载 2015-10-28 10:17:32 · 1316 阅读 · 0 评论 -
C++编程的调试技巧
树立正确的编程方法论•没有解决不了的问题,树立编程信心•按照正确的方法来编程–从实践中体会解决问题的思路、编程的思想–熟练掌握语法,数据结构,算法、模式,底层环境–按照编程规范来编写代码–充分利用各种资源:•调试器•msdn•网络搜索引擎常用调试手段1.利用编译器的输出信息排除错误原创 2013-07-27 01:15:52 · 959 阅读 · 0 评论 -
WinDbg配置与下载
WinDbg配置与下载http://blog.youkuaiyun.com/sky04/article/details/5928876WinDbg配置和使用基础 WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。1. WinDbg介绍: Debugging To转载 2013-01-25 11:45:42 · 823 阅读 · 0 评论 -
使用Windbg分析程序死锁小结
使用Windbg分析程序死锁小结2014年12月02日 09:04:17阅读数:1837死锁场景描述: 针对之前一个版本反馈回来的问题,对数据通讯模块升级,做了精简和重构 因为ABA问题的存在,将之前以Socket为key改为以只增的Int为key。使用的锁为临界区锁。 修改完成,联调后进行压力测试,发现当后台的线程池满的时候会必然发生死锁。死锁定位过程...转载 2018-06-01 17:05:13 · 1591 阅读 · 0 评论 -
简单建立自己的符号服务器(转)
转载地址:简单建立自己的符号服务器(转)开发团队中,随着版本的增多,用户的增多,修改遗留问题变得异常困难,pdb是个好东西,符号服务器更是个好东西。给自己的开发团队建立一个简单的符号服务器会损失不好,俗话说得好嘛,“磨刀不误砍柴工”。基本需求硬件一台,要求很简单:有操作系统,硬盘足够足够足够大(请注意用了三个足够)工具软件:symstore.exe(Debugging Tools ...转载 2018-08-30 17:14:12 · 502 阅读 · 0 评论 -
windbg检测句柄泄露(定位到具体代码)
转载:windbg检测句柄泄露(定位到具体代码)1.构造一个测试用例#include "stdafx.h"#include <Windows.h> void NormalFunc(){ HANDLE hEvent; hEvent = CreateEvent(NULL,TRUE,TRUE,NULL); CloseHandle(hEvent);} void H...转载 2018-09-10 20:19:03 · 757 阅读 · 0 评论 -
学习使用常用的windbg命令(u、dt、ln、x)(转)
详细(1)u命令(反汇编)(2)dt命令(查看数据结构)(3)ln命令(查找就近的符号)(4)x命令(显示模块的符号)(5)k命令(显示调用栈)(6)d命令(以数据方式显示)(7)b命令(断点)(8)lm lmvm (显示模块信息) (9) .reload (重加载模块)(10) !process !thread .process .thread(查看进程线...转载 2018-09-26 15:51:32 · 1265 阅读 · 0 评论 -
Appverifier使用说明及原理
转载地址 AppVerifier 特别用于检测和帮助调试内存损坏、危险的安全漏洞以及受限的用户帐户特权问题。AppVerifier 有助于创建可靠且安全的应用程序,方法是监视应用程序与Windows操作系统的交互,并配置应用程序使用的对象、注册表、文件系统和 Win32 API(包括堆、句柄和锁)。AppVerifier 还包括检查,以便预测应用程序在非管理员环境中的执行情况。 1...转载 2018-09-29 21:42:19 · 8305 阅读 · 0 评论 -
如何分析堆栈出错的 dmp 文件
标 题: 【讨论】如何分析堆栈出错的 dmp 文件作 者: 小喂时 间: 2007-09-05,15:41链 接: http://bbs.pediy.com/showthread.php?t=51141https://blog.youkuaiyun.com/shellching/article/details/5507585如何分析堆栈出错的 dmp 文件分析程序出错生成的 dmp 文件是事后分析的主要工作。...转载 2018-06-01 16:28:55 · 2568 阅读 · 0 评论