随笔分类 -  调试

上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 32 下一页

关于bug调试工具的使用/方法/经验
关于windbg报错"No symbols for ntdll. Cannot continue."问题
摘要:最近我写个例子程序研究下某个异常情况,故意制造了个崩溃。然后分析dmp文件。 当我执行!address -summary命令想观察下进程当前内存情况时,去报如下错误: 0:000> !address -summaryNo symbols for ntdll. Cannot continue. 这意思 阅读全文

posted @ 2019-11-30 11:35 活着的虫子 阅读(2918) 评论(5) 推荐(0)

WinDbg常用命令系列---.cmdtree
摘要:.cmdtree 简介 使用形式 .cmdtree cmdfile 参数 cmdfile命令文件,包含多个你需要的命令。必须是一个文本档 使用步骤 1、使用命令创建文本文件test.wl,使用以下示例作为模板。您可以按所需方式修改{}之间的节: windbg ANSI Command Tree 1. 阅读全文

posted @ 2019-11-28 18:46 活着的虫子 阅读(801) 评论(0) 推荐(0)

正确创建本地C++发布构建PDBS
摘要:在调试版本中遇到的一个问题是编译本地的C++应用程序。例如,许多局部变量消失了,因为代码生成器没有将它们放在堆栈上,而是将它们放在寄存器中,就像在调试生成中发生的那样。此外,release积极地构建对函数的内联调用,因此代码生成器将函数体直接放入调用方法中。一旦您习惯了编译器的模式,并了解了一点汇编 阅读全文

posted @ 2019-11-28 17:11 活着的虫子 阅读(416) 评论(0) 推荐(0)

PDB文件会影响性能吗?
摘要:有人问了这样的问题:"我工作的公司正极力反对用生成的调试信息构建发布模式二进制文件,这也是我注册该类的原因之一。他们担心演示会受到影响。我的问题是,在发布模式下生成符号的最佳命令行参数是什么?还有什么地方我可以参考,以表明不应该有性能问题。“ 回答是:不,生成PDB文件对性能没有任何影响。至于我也可 阅读全文

posted @ 2019-11-28 16:45 活着的虫子 阅读(701) 评论(0) 推荐(0)

每个开发人员必须知道PDB文件知识
摘要:大多数开发人员都意识到PDB文件有助于您进行调试,但仅此而已。如果你不知道PDB文件是怎么回事,不要觉得很糟糕,因为虽然有文档在那里,但它分散在周围,而且大部分是为编译器和调试器编写器准备的。虽然编写编译器和调试器非常酷和有趣,但这可能不是你的工作。我想做的是把每个在微软操作系统上进行开发的人都必须 阅读全文

posted @ 2019-11-28 16:28 活着的虫子 阅读(1577) 评论(0) 推荐(2)

Windbg妙用
摘要:计算器 当你在调试,需要做一些从十六进制到十进制的简单转换,一些整数计算你不需要切换到calc.exe,你可以只使用windbg的表达式计算器。假设你得到了一个十六进制的大小,比如说2e903000,您可以转换并执行如下计算: 0:000> ?2e903000 Evaluate expression 阅读全文

posted @ 2019-11-28 15:10 活着的虫子 阅读(381) 评论(0) 推荐(0)

在x64计算机上捕获32位进程的内存转储
摘要:这是一个我经常遇到的问题,我们经常会遇到这样的情况:我们必须重新捕获内存转储,因为内存转储是以“错误”的方式捕获的。简而言之:如果在64位计算机上执行32位进程,则需要使用允许创建32位转储的工具捕获转储。 怎么知道进程是32位的? 如果您在64位计算机上,可以检查任务管理器以查看您的进程正在使用的 阅读全文

posted @ 2019-11-28 14:22 活着的虫子 阅读(972) 评论(0) 推荐(0)

为什么我的堆栈上会有奇怪的函数名?(关于符号的讨论)
摘要:符号可以包含有关全局变量、局部变量、函数名、参数、结构和源行号的信息。符号有三种类型:导出符号、pdb符号(公共符号)和专用pdb符号(专用符号)。导出符号是dll本身的一部分。例如,ntdll.dll和kernel32.dll将其函数的很大一部分公开为导出符号,因此可以将它们称为API,但是在进程 阅读全文

posted @ 2019-11-28 13:42 活着的虫子 阅读(747) 评论(0) 推荐(0)

将windbg与.dmp文件关联
摘要:如果您厌倦了启动调试器、加载转储文件、设置sympath、加载扩展名等,这里有一个很好的方法,可以在.dmp文件的上下文菜单上获取“调试此转储文件”,并自动加载所有您喜欢的命令。首先创建一个包含以下内容的.reg文件(在修改注册表时一定要非常小心) Windows Registry Editor V 阅读全文

posted @ 2019-11-28 10:39 活着的虫子 阅读(437) 评论(0) 推荐(0)

在windbg调试.net时遇到的问题
摘要:调试.net应用程序时,有时会在windbg中收到错误消息。以下是我最常遇到的几个问题。 Failed to start stack walk 启动堆栈遍历失败 如果你运行sos命令!clrstack在线程上显示.net堆栈,而此线程是.net线程,但它当前未运行任何.net代码,sos将提示失败“ 阅读全文

posted @ 2019-11-28 09:16 活着的虫子 阅读(540) 评论(0) 推荐(0)

记一次CLR exception(e0434352)---System.BadImageFormatException异常排查 ,这次情况不一样
该文被密码保护。

posted @ 2019-11-27 15:35 活着的虫子 阅读(3) 评论(0) 推荐(0)

记一次0x80000003中断异常的排查
该文被密码保护。

posted @ 2019-11-27 14:24 活着的虫子 阅读(2) 评论(0) 推荐(0)

中断点异常 STATUS_BREAKPOINT(0x80000003)
摘要:简介 STATUS_BREAKPOINT,值为0x80000003,称为中断指令异常,表示在系统未附加内核调试器时遇到断点或断言。 触发条件 通常中断指令异常可以在以下条件下触发: 硬代码中断请求,如:asm int 3 System.Diagnostics.Debugger.Break(C 35) 阅读全文

posted @ 2019-11-27 11:15 活着的虫子 阅读(26125) 评论(12) 推荐(1)

在WinDbg里使用MEX调试扩展
摘要:简介 针对WinDbg的MEX调试扩展可以帮助您简化常见的调试器任务,并为调试器提供强大的文本筛选功能。此扩展被Microsoft支持工程师广泛用于解决流程应用程序的故障。 下载&安装 下载mex.exe存档。下载地址https://www.microsoft.com/en-us/download/ 阅读全文

posted @ 2019-11-26 11:58 活着的虫子 阅读(1336) 评论(0) 推荐(0)

WinDbg常用命令系列---|(进程状态)
摘要:|(进程状态) 简介 (|) 命令显示指定进程的状态或当前正在调试你的所有进程。 使用形式 | Process 参数 Process 指定要显示的进程。 如果省略此参数,将显示所有正在调试的进程。 支持环境 模式 仅限用户模式 目标 实时、 崩溃转储 平台 全部 备注 只能在用户模式下指定进程。可以 阅读全文

posted @ 2019-11-26 10:24 活着的虫子 阅读(1290) 评论(0) 推荐(0)

WinDbg常用命令系列---||(系统状态)
摘要:||(系统状态) 简介 双竖线 ( || ) 命令将打印指定的系统或当前正在调试的所有系统的状态。 使用形式 || System 参数 System 指定要显示的系统。 如果省略此参数,将显示正在调试的所有系统。 支持环境 模式 调试多个目标 目标 实时、 崩溃转储 平台 全部 备注 || 命令仅在 阅读全文

posted @ 2019-11-26 10:15 活着的虫子 阅读(312) 评论(0) 推荐(0)

WinDbg常用命令系列---.write_cmd_hist (写命令历史记录)
摘要:.write_cmd_hist 简介 .write_cmd_hist命令将调试器命令窗口的整个历史记录写入文件。 使用形式 .write_cmd_hist Filename 参数 Filename指定要创建的文件的路径和文件名。 支持环境 此命令仅在 WinDbg 中可用,并能在脚本文件。 模式 用 阅读全文

posted @ 2019-11-25 19:07 活着的虫子 阅读(525) 评论(0) 推荐(0)

WinDbg常用命令系列---!findstack
摘要:!findstack 简介 !findstack扩展查找包含指定符号或模块的所有堆栈。 使用形式 !findstack Symbol[DisplayLevel] !findstack -? 参数 Symbol指定符号或模块。 DisplayLevel 指定显示内容。这可以是以下任何一个值。默认值为1 阅读全文

posted @ 2019-11-23 16:34 活着的虫子 阅读(295) 评论(0) 推荐(0)

WinDbg常用命令系列---!peb
摘要:!peb 简介 !peb显示进程环境块(PEB)中信息的格式化视图。 使用形式 !peb [PEB-Address] 参数 PEB-Address要检查其PEB的进程的十六进制地址。(这不是从进程的内核进程块派生的PEB地址。)如果在用户模式中省略PEB地址,则使用当前进程的PEB。如果在内核模式下 阅读全文

posted @ 2019-11-23 16:14 活着的虫子 阅读(1316) 评论(0) 推荐(0)

WinDbg常用命令系列---!teb
摘要:!teb 简介 !teb扩展显示线程环境块(teb)中信息的格式化视图。 使用形式 !teb [TEB-Address] 参数 TEB-Address 要检查其TEB的线程的十六进制地址。(这不是从线程的内核线程块派生的TEB地址。)如果在用户模式中省略了TEB地址,则使用当前线程的TEB。如果在内 阅读全文

posted @ 2019-11-23 16:06 活着的虫子 阅读(1119) 评论(0) 推荐(0)

上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 32 下一页

导航