如何在 WinDbg 中删除断点 ntdll!DbgBreakPoint+0x1

2024-03-05

我正在调试一个在将 WinDbg 设置为事后调试器时崩溃的程序。我在地址 77f7f571 设置了断点。当它被触发时,我常常得到以下信息:

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\System32\ntdll.dll - 
ntdll!DbgBreakPoint+0x1:

然后我按照以下指示进行操作http://www.osronline.com/ShowThread.cfm?link=178221 http://www.osronline.com/ShowThread.cfm?link=178221,现在我刚刚得到

ntdll!DbgBreakPoint+0x1:

我想删除这个断点,但无法列出或删除它。 bl、bc 或 bd 都没有输出:

0:002> bl 
0:002> bc * 
0:002> bd *

这不是基于行的断点,但看起来像是手动调用DebugBreak()就像下面的程序一样:

#include "stdafx.h"
#include "windows.h"    
int _tmain()
{
    DebugBreak();
    return 0;
} 

在内部,该方法将抛出异常。要控制 WinDbg 是否因异常而停止,请使用sxe bpe停止并sxi bpe忽略异常。

To try this, compile above application and run it under WinDbg (Ctrl+E). At the inital breakpoint, take over the control:

(1c2c.6a8): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000000 ecx=779d0000 edx=0020e218 esi=fffffffe edi=00000000
eip=773e12fb esp=0038f9e8 ebp=0038fa14 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ntdll!LdrpDoDebuggerBreak+0x2c:
773e12fb cc              int     3

0:000> sxe bpe; g
(1c2c.6a8): Break instruction exception - code 80000003 (first chance)
*** WARNING: Unable to verify checksum for DebugBreak.exe
eax=cccccccc ebx=7efde000 ecx=00000000 edx=00000001 esi=0038fd44 edi=0038fe10
eip=74d5322c esp=0038fd40 ebp=0038fe10 iopl=0         nv up ei pl nz na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000206
KERNELBASE!DebugBreak+0x2:
74d5322c cc              int     3

0:000> g
eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=77442100 edi=774420c0
eip=7735fd02 esp=0038fd78 ebp=0038fd94 iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ntdll!ZwTerminateProcess+0x12:
7735fd02 83c404          add     esp,4

完成此实验后,输入.restart。然后重复实验sxi bpe:

(109c.1c1c): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000000 ecx=be9e0000 edx=0009e028 esi=fffffffe edi=00000000
eip=773e12fb esp=002ff890 ebp=002ff8bc iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ntdll!LdrpDoDebuggerBreak+0x2c:
773e12fb cc              int     3

0:000> sxi bpe; g
eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=77442100 edi=774420c0
eip=7735fd02 esp=002ffc20 ebp=002ffc3c iopl=0         nv up ei pl zr na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000246
ntdll!ZwTerminateProcess+0x12:
7735fd02 83c404          add     esp,4

正如你所看到的,WinDbg 并没有停留在KERNELBASE!DebugBreak+0x2由于异常不再发生。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 WinDbg 中删除断点 ntdll!DbgBreakPoint+0x1 的相关文章

  • WinDbg:使用 .if 中的条件命令

    WinDbg 有 if 语句用于条件执行命令 if Condition Commands else Commands 对于条件 无法使用 WinDbg 命令 是否有任何间接方式使用条件命令 例如通过伪寄存器 要完成的示例任务 如果日志文件已
  • 在哪里可以找到并下载不同版本的 mscorwks.dll 和 mscordacwks.dll?

    我试图习惯使用 WinDbg 在能够获取故障转储时对其进行故障排除 但每次我这样做时 它似乎都会要求我提供不同版本的 mscorwks dll 和 mscordacwks dll 而我不这样做并不总是能够访问转储来源的机器 除了告诉最终用户
  • 是否可以修复完整内存转储,以便不再需要运行 .imgscan /l ?

    由于某种原因 我已经开始接收来自需要运行的生产的转储 imgscan l first 现在 我倾向于使用从 powershell 脚本调用的 CDB 对转储运行小型查询 然而 运行 imgscan l每次都需要相当长的时间 是否可以以渲染的
  • 在无头模式下运行 WinDbg

    有没有办法让 WinDbg 处于纯无头模式 我的用例是 我应该能够在命令行上模拟 analyze v 命令进行小型转储 而无需启动 WinDbg GUI 使用 Windows 调试工具 还可以cdb 控制台调试器 要调试故障转储 请使用 z
  • !clrstack -p 不给出调用堆栈中方法的参数值

    我们正在尝试使用 Windbg 分析 w3wp 内存转储 我们发现 w3wp 进程由于堆栈溢出而崩溃 我加载了 psscor4 dll 并通过发出 clrstack 获取了调用堆栈 但我也想知道传递给方法的参数 如果我发出 clrstack
  • 错误:找不到符号文件。风数据库

    我从下载了符号http www microsoft com whdc devtools debugging symbolpkg mspx http www microsoft com whdc devtools debugging symb
  • IE 100% CPU 挂起/获取堆栈跟踪

    我遇到过 IE7 挂起访问我的网络应用程序的情况 立足于优秀建议 https stackoverflow com questions 574423 ie hanging using 100 of the cpu 574595 574595
  • WinDbg 在 MS 符号服务器上找不到 ntdll 的符号

    我正在尝试调试可执行文件 notepad exe 来自 Windows 10 发行版 并且需要来自 Microsoft 符号服务器的符号 ntdll pdb 但调试器返回错误 指出找不到指定的文件 0 000 gt reload Reloa
  • 可以让 WinDBG 在符号存储中找到 mscordacwks.dll 吗?

    问题 有很多手动方法可以让 WinDBG 在没有符号存储的情况下找到 mscordacwks dll 将文件放在某个路径中 将其放在与 Windbg exe 相同的文件夹中 将其放在我的 Framework v 文件夹中 在使用WinDBG
  • 无法找到模块“mscorwks.dll”

    我尝试使用 winDBG 来调试转储文件 当我运行 loadby sos mscorwks dll 时 它给了我一条错误消息 无法找到模块 mscorwks dll 有没有人见过这个 如果您正在调试 NET 4 0应用程序 您需要使用以下内
  • Windbg可以显示线程名称吗?

    Windbg应该明白 https groups google com forum topic microsoft public windbg 2atvu7h3D3c the MS异常协议 https msdn microsoft com e
  • 小型转储中的 .ni.dll 和 .ni.exe 文件是什么?

    由于我的应用程序崩溃 我从 Windows 应用商店应用程序提交过程 由审阅者发送 收到了一个小型转储 我在加载应用程序的符号时遇到问题 因为错误发生在内部App ni exe 一个我不知道从哪里来的文件 我的应用程序只有一个App exe
  • WinDbg - 将字符串参数与内存中的字符串进行比较

    我需要比较一个字符串 作为参数传递给WinDbg用记忆中的字符串 如何才能实现这一目标 例如 该字符串位于加载的 PE 内的特定偏移处 所以 我可以通过执行轻松读取字符串da c 100
  • 如何调试在客户计算机上崩溃的 Windows 应用商店应用程序?

    我收到一位客户的支持电子邮件 说他的应用程序在启动时崩溃 他收到的只是一条类似以下的消息 应用程序名称 遇到问题您可以向 Microsoft 发送有关以下内容的信息 出了什么问题来帮助改进这个应用程序 将发送给 Microsoft 的文件
  • 诊断 .NET 应用程序中的“找不到文件”错误

    我正在使用 NET 4 0 应用程序 该应用程序失败并显示以下错误 System ComponentModel Win32Exception例外 我已将其附加到 WinDBG 以尝试了解更多信息 0 000 gt sxe clr 0 000
  • Windows 错误报告在哪里创建转储文件

    我只是想知道 WER 将其转储文件写入哪个位置 这个位置也是操作系统特定的吗 The WER 文档 http msdn microsoft com en us library windows desktop bb787181 28v vs
  • Windbg:psscor4 不起作用

    我搜索并尝试了很多东西 但无法让 psscor4 正常工作 当我调用 threads 我总是得到 请求ThreadStore失败 我检查的内容如下 我有一个为 X86 平台编译的 NET 4 应用程序 我使用的是Windbg版本6 2 92
  • 调用栈和反汇编疑问

    三大疑点 1 假设我得到如下调用堆栈 user32 dll InternalCallWinProc 20 0x28 bytes user32 dll UserCallWinProcCheckWow 32 0xb7 bytes user32
  • 什么是“异步固定句柄”?

    我正在尝试调查一个非常严重的软件崩溃 这可能与托管堆损坏有关 因为它发生在垃圾收集期间 将 WinDbg 与 SOS gchandles 命令一起使用 我得到类似的信息 0 000 gt gchandles GC Handle Statis
  • Windows 调试工具未安装

    我正在尝试通过 Windows SDK 安装 Windows 调试工具 两次尝试后我不知道该怎么做 我开始安装 没有收到任何错误 但调试工具 windbg 和 kd 却找不到 日志几乎毫无用处 9 16 59 PM Monday July

随机推荐