WDBGARK是用于Windows的Microsoft调试工具的扩展名(动态库)。它的主要目的是使用内核调试器查看和分析Windows内核中的异常。可以查看各种系统回调,系统表,对象类型等。对于更多用户友好的视图扩展,使用DML。对于大多数命令,需要内核模式连接。随时使用实时内核模式调试或内核模式崩溃转储分析的扩展名(某些命令将无效)。需要公共符号,因此请使用它们,强制重新加载它们,忽略校验和问题,在分析之前准备它们,您会很高兴。
不支持多个目标调试!
Windows Beta/RC由设计支持,但请阅读一些注释。首先,我不在乎检查构建。其次,我不在乎您是否没有符号(公共还是私人)。 IA64/ARM不受支持(也不会)。
来源被组织为视觉工作室2017解决方案。
启用后构建事件以进行调试。它会自动将链接到WindBG插件文件夹链接的扩展名(例如x64目标:
"copy /B /Y "$(OutDir)$(TargetName)$(TargetExt)" "$(WindowsSdkDir)Debuggersx64winext$(TargetName)$(TargetExt)" )。
弃用。
是的,可以使用简单的批处理脚本构建所有内容。
C:Program Files (x86)Windows Kits10Debuggersx64winextC:Program Files (x86)Windows Kits10Debuggersx86winext 0: kd> .load wdbgark
0: kd> .chain
Extension DLL search Path:
<...>
Extension DLL chain:
wdbgark: image 2.5.0.0, API 2.5.0, built Fri Oct 20 17:54:03 2017
[path: C:Program Files (x86)Windows Kits10Debuggersx64winextwdbgark.dll]
dbghelp: image 10.0.16299.15, API 10.0.6,
[path: C:Program Files (x86)Windows Kits10Debuggersx64dbghelp.dll]
ext: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64winextext.dll]
exts: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64WINXPexts.dll]
kext: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64winextkext.dll]
kdexts: image 10.0.16299.15, API 1.0.0,
[path: C:Program Files (x86)Windows Kits10Debuggersx64WINXPkdexts.dll]
0: kd> !wdbgark.help
Commands for C:Program Files (x86)Windows Kits10Debuggersx64winextwdbgark.dll:
!help - Displays information on available extension commands
!wa_apiset - Output user-mode and/or kernel-mode ApiSet map
!wa_callouts - Output kernel-mode win32k callouts
!wa_checkmsr - Output system MSRs (live debug only!)
!wa_chknirvana - Checks processes for Hooking Nirvana instrumentation
!wa_cicallbacks - Output kernel-mode nt!g_CiCallbacks or nt!SeCiCallbacks
!wa_ciinfo - Output Code Integrity information
!wa_colorize - Adjust WinDBG colors dynamically (prints info with no
parameters)
!wa_crashdmpcall - Output kernel-mode nt!CrashdmpCallTable
!wa_drvmajor - Output driver(s) major table
!wa_eop - Checks processes for Elevation of Privilege
!wa_gdt - Output processors GDT
!wa_haltables - Output kernel-mode HAL tables: nt!HalDispatchTable,
nt!HalPrivateDispatchTable, nt!HalIommuDispatchTable
!wa_idt - Output processors IDT
!wa_lxsdt - Output the Linux Subsystem Service Descriptor Table
!wa_objtype - Output kernel-mode object type(s)
!wa_objtypecb - Output kernel-mode callbacks registered with
ObRegisterCallbacks
!wa_objtypeidx - Output kernel-mode nt!ObTypeIndexTable
!wa_pnptable - Output kernel-mode nt!PlugPlayHandlerTable
!wa_process_anomaly - Checks processes for various anomalies
!wa_psppico - Output kernel-mode Pico tables
!wa_scan - Scan system (execute all commands)
!wa_ssdt - Output the System Service Descriptor Table
!wa_systables - Output various kernel-mode system tables
!wa_systemcb - Output kernel-mode registered callback(s)
!wa_ver - Shows extension version number
!wa_w32psdt - Output the Win32k Service Descriptor Table
!wa_w32psdtflt - Output the Win32k Service Descriptor Table Filter
!wdrce_copyfile - Copy file (live debug only!)
!wdrce_cpuid - Execute CPUID instruction (live debug only!)
!help <cmd> will give more information for a particular command
问:扩展的主要目的是什么?
答:嗯,首先是教育性的。第二,为了娱乐和利润。
问:您知道Pykd吗?我可以使用python脚本脚本脚本。
答:是的,我知道,但是C ++好多了。
问:1.0版在哪里?
答:在Google代码的空间中丢失。
问:项目何时开始?
答:2013年2月在Google代码上。
问:我应该使用什么版本?
答:请仅使用X64版本。在X64时代,我不知道为什么您可能需要使用X86版本。 X64 WindBG能够调试X86和X64。主机OS位是唯一的限制。
问:我该如何帮助?
答:传播一个字。报告问题和功能请求。我愿意接受任何建议。谢谢!
问:哪种内存转储最好与扩展名一起使用?
答:完整的内存转储。
问:如何报告问题?
答:随时使用GitHub或直接通过电子邮件报告问题,但请附加完整的内存崩溃转储文件。
Wiki可以提供帮助。
该软件在GNU GPL V3许可证下发布。请参阅复制文件以获取完整的许可文本和此较小的添加。