DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  异常诊断与调试

上一页 1 2 3 4 5 6 7 ··· 10 下一页

摘要:崩溃捕捉的dump没有提供堆栈的问题 前两天客户现场出现了崩溃,但是程序捕捉生成的dump文件大小为0kb,没有办法只能通过任务管理器创建转储文件进行分析。 输入 !analyze -v命令输出如下: 通过此堆栈信息看不出任何崩溃的具体原因。再输入~*kv命令查看所有线程的堆栈:可以看到崩溃的线程, 阅读全文
posted @ 2021-02-06 14:39 DoubleLi 阅读(394) 评论(0) 推荐(0) 编辑

摘要:c++内存泄漏问题定位 内存泄漏指的是直接操作内存分配构造函数(例如new,malloc,HeapAlloc)来获得堆内存后,但是没有释放而导致的泄漏问题。我们的行情服务器是一个长期运行在客户服务器上的应用程序,如果存在内存泄漏,那么当内存增长到某个值时,会极大地影响当前机器的性能,直至影响我们的行 阅读全文
posted @ 2021-02-06 14:31 DoubleLi 阅读(450) 评论(0) 推荐(0) 编辑

摘要:c++句柄泄漏问题定位 Windows内核中定义了一组操作系统特有的对象类型,包括文件对象,线程对象,Event对象等。要使用某种对象类型,必须首先生成这种对象类型的一个实例,以事件对象为例,调用CreateEvent可以创建或者打开一个现有的Event,在该函数内部,它调用了内核接口来创建一个事件 阅读全文
posted @ 2021-02-06 14:22 DoubleLi 阅读(393) 评论(0) 推荐(0) 编辑

摘要:C++内存越界导致的std::map异常 前段时间在定位一个程序崩溃的问题,虽然有dump文件,能够看到出问题的具体代码行数,问题都出在同一个map上。 dump1显示map下标插入数据时异常。 dump2显示调用map的clear函数异常。 刚开始看到这两个dump,以为是多线程导致的访问冲突,看 阅读全文
posted @ 2021-02-06 14:17 DoubleLi 阅读(718) 评论(0) 推荐(0) 编辑

摘要:C++死锁问题定位与分析 一,测试代码 二,等待链 三,死锁的定位和分析 C++程序异常一般有两种表现形式:程序崩溃和程序无响应。程序崩溃主要是由指针,数组越界等原因引起,这种情况可以直接通过在程序中加入Dump捕捉逻辑,分析dump文件,定位出崩溃的代码。程序无响应主要是由死循环和死锁两个原因造成 阅读全文
posted @ 2021-02-06 14:15 DoubleLi 阅读(1149) 评论(0) 推荐(0) 编辑

摘要:C++ delete指针后依然可以访问的问题 一,第一个dump分析 二,第二个DUMP分析 三,VC6.0和VS2015下delete指针验证 四,结论 这两天在定位一个BUG:我们的程序运行过程中,点击停止运行,程序偶现无响应和崩溃,此时无查询操作(因为当并发查询的时候,有出现其他bug,特意确 阅读全文
posted @ 2021-02-06 14:14 DoubleLi 阅读(449) 评论(0) 推荐(0) 编辑

摘要:Windows下c++程序崩溃问题定位 一,WinDbg调试 二,地址偏移计算验证 三,通过map文件定位程序崩溃代码行数 Windows下c++程序崩溃问题定位主要依赖于代码编译过程中生成的调试信息文件,比如.map和.pdb。 本文以前几天项目中出现的崩溃问题当做具体案例来分析。具体原因是配置了 阅读全文
posted @ 2021-02-06 14:12 DoubleLi 阅读(1813) 评论(0) 推荐(0) 编辑

摘要:Windbg调试一)minidump崩溃捕捉 一,系统的异常处理顺序 二,SetUnhandleExceptionFilter函数 三,Minidump 四,代码演示 在日常工作中,本地c++代码发生崩溃时,编译器都可以帮我们捕捉到并且定位到具体的代码,这是因为编译器接收到了操作系统发送过来的程序异 阅读全文
posted @ 2021-02-06 14:10 DoubleLi 阅读(782) 评论(0) 推荐(0) 编辑

摘要:设置符号路径 利用环境变量设置符号路径 在WinDbg启动时,会根据 _NT_ALT_SYMBOL_PATH 和 _NT_SYMBOL_PATH 的值设置符号路径: > set _NT_ALT_SYMBOL_PATH="D:\symbols" > windbg notepad.exe 利用启动参数设 阅读全文
posted @ 2021-02-06 11:54 DoubleLi 阅读(1552) 评论(0) 推荐(0) 编辑

摘要:WinDbg可以通过加载Symbol文件(*.pdb),即时的调试程序。WinDbg如何找到相应的符号文件呢?WinDbg首先在.exe或者.dll所在目录下寻找同名的.pdb文件。如果找不到,WinDbg在Symbol File Path中查找。Symbol File Path可以通过多种方式设置 阅读全文
posted @ 2021-02-06 11:51 DoubleLi 阅读(1571) 评论(0) 推荐(0) 编辑

摘要:Windbg符号与源码 《第二篇》 符号文件是一种辅助数据,它包含了对应用程序代码的一些标注信息,这些信息在调试过程中非常有用。如果没有辅助数据,那么能获得的信息就只有应用程序的二进制文件。二进制文件很难调试,因为无法看到代码中的函数名、数据结构名等。这正是符号文件能显示的。符号文件的扩展名通常是p 阅读全文
posted @ 2021-02-06 11:32 DoubleLi 阅读(215) 评论(0) 推荐(0) 编辑

摘要:我们经常用的windbg symbol path设置是: File -> Symbol File Path 但是自从OS升级到Win10以后,发现这个设置只能单次有效,关闭windbg后再打开,又需要重新设置,对于Windows symbol很是麻烦,查了下MSDN,原来还可以通过环境变量进行设置, 阅读全文
posted @ 2021-02-06 11:22 DoubleLi 阅读(892) 评论(0) 推荐(0) 编辑

摘要:一、Windbg Windbg是微软开发的一套调试器中的组件。WinDBG属于内核级别调试器,不仅可以用来调试应用程序,也可以调试内核级的代码,如驱动程序。Windbg由于其丰富的命令和对Windows的原生支持还有其易用性,是其他其他调试器望尘莫及的。如果安装了Windows SDK,一般会带有w 阅读全文
posted @ 2021-02-06 10:20 DoubleLi 阅读(2637) 评论(0) 推荐(0) 编辑

摘要:前面4篇文章提到的方法,已经可以解决我们的大部分内存泄露问题了,但是这些方法是有前提的,那就是一定要有源代码,而且还只能是Debug版本调试模式下。实际上很多时候,我们的程序会用到第三方没有源代码的模块,有些情况下模块有内存泄露,但是没有证据,又或者VC++ MFC退出提示有内存泄漏,但是信息不足, 阅读全文
posted @ 2021-02-06 10:10 DoubleLi 阅读(320) 评论(0) 推荐(0) 编辑

摘要:安装与配置 windbg 的 symbol (符号) 本篇是新手自己写的一点心得.建议新手看看.同时希望前辈多多指教. 写这篇的动机:在网上找了一上午的 windbg 配置符号教程.楞是没找到详细的,都讲的太模糊而且互相抄袭.不适合新手看.终于靠自己的努力弄懂了一点,呵呵写出来新手们分享. 安装与配 阅读全文
posted @ 2021-02-06 09:53 DoubleLi 阅读(185) 评论(0) 推荐(0) 编辑

摘要:文章目录 一、符号文件的用处 二、下载符号文件(微软官方符号服务器无法访问) 三、加载用户层的符号文件 参考资料 一、符号文件的用处 符号文件即PBD(Program Debug DataBase)文件,他的用处是让调试器能够将地址与函数名对应,例如:WinDBG中输入命令u NtClose就能定位 阅读全文
posted @ 2021-02-06 09:51 DoubleLi 阅读(549) 评论(0) 推荐(0) 编辑

摘要:今天本来想跟着调个漏洞,结果折腾windbg就折腾了半天,仅做个记录。 1. 设置环境变量 _NT_SYMBOL_PATH srv*c:\symbols*http://msdl.microsoft.com/download/symbols 2. FQ 发现不FQ好像下载不了。 3. 发现有时候需要某 阅读全文
posted @ 2021-02-06 09:45 DoubleLi 阅读(699) 评论(0) 推荐(0) 编辑

摘要:1. 首先设置符号表路径 在系统环境变量添加一个 _NT_SYMBOL_PATH 值为srv*d:\symbols*http://msdl.microsoft.com/download/symbols 这样IDA, windbg, vs 都会自动到该目录加载符号表. 对于这个路径d:\symbols 阅读全文
posted @ 2021-02-06 09:42 DoubleLi 阅读(462) 评论(0) 推荐(0) 编辑

摘要:新建一个环境变量_NT_SYMBOL_PATH 值为: SRV*c:\mysymbol* http://msdl.microsoft.com/download/symbols WinDBG无法加载符号表是很痛苦的事情,明明符号表的路径已经加载进去了,可是还是无法加断点,下面直接进入主题: 符号表无法 阅读全文
posted @ 2021-02-05 17:39 DoubleLi 阅读(853) 评论(0) 推荐(0) 编辑

摘要:1.找不到符号文件 抓取完Dump后,打开WinDbg,Ctrl+D找到刚才抓取的Dump文件,报如下异常: *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll - ntdll!Zw 阅读全文
posted @ 2021-02-03 17:34 DoubleLi 阅读(520) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 10 下一页