Articles of windbg

WinDbg中止点击button

想象一个显示button的应用程序: OK 。 是否有可能打破程序的执行,并查看反汇编使用WinDbg,就在button收到点击后? 我该怎么做? 在这种情况下,源代码不可用。

调用LoadLibrary(…)失败,Win32错误0n126使用windowsdebugging工具windbg; w3wp.exe IIS工作进程错误

我正在使用windbg来分析转储文件的来源所在的另一台计算机上的内存转储。 在工具的命令行中,我input了以下内容: .loadby w3core w3core 这是错误: 调用LoadLibrary(c:\ windows \ system32 \ inetsrv \ w3core.dll)失败,Win32错误0n126“指定的模块找不到”。 请检查您的debugging器configuration和/或networking访问 更新:我创build转储文件的过程是w3wp.exe。 我认为这是为IIS。 这是IIS工作进程。 所以,w3core.dll必须与IIS工作进程相关联。 为了回顾我的步骤,我使用debugging诊断工具来监视计算机A上特定进程的崩溃。(计算机A运行的是Windows Server 2003 Standard 32位,IIS 6;未安装ASP.NET。)创build了一个内存转储文件。 我将此转储文件复制到计算机B,它具有debugging诊断工具和windbg安装。 在计算机B上,我在debugging诊断工具的高级分析选项卡中添加了转储文件,然后单击“开始分析”button。 分析汇总报告: the module c:\WINDOWS\system32\inetsrv\32.core.dll has caused an access violation exception(0xC0000005) when trying to read from memory location 0x53534553 on thread 4 我打开windbg并添加了符号文件path SRV*downstream_store*http://msdl.microsoft.com/download/symbols 然后,我打开转储文件,并input上述命令,它吐出上述错误。 我可以保证文件肯定存在。 问题是什么? 是因为我在计算机B上debugging,实际上,转储文件来自计算机A? 除此之外,我不知道我做错了什么。 […]

当Cygwin的Perl用反引号启动程序时,不能触发系统debugging器转储核心

我有使用反引号启动任意进程的脚本。 有时会发生崩溃(例如零分),并且在发生这种情况时需要获得核心转储以进行分析。 我已经注册了一个perl脚本作为与操作系统的崩溃处理程序(这在Windows 7中 – 我知道你想知道),它与崩溃的PID调用; 处理程序附加微软的'cdb'debugging器,它创build所需的转储。 我的testing“crasher”程序是一个C ++可执行文件,除以零(Crasher.exe)。 问题:当我使用Cygwin的Perl实现时,程序崩溃从不触发崩溃处理程序。 我的怀疑是,Perl正在解决这个问题,然后悄无声息地抛弃它。 所有工作正常与来自ActiveState的Perl。 问题:我怎样才能让Cygwin的Perl离开,让错误一直传播回系统。 下面是一个使用ActiveState perl触发崩溃处理程序并生成核心转储的示例 C:> \tools\Perl\bin\perl.exe -e "`Crasher.exe`;" 但是使用Cygwin不会 C:> \cygwin\bin\perl.exe -e "`Crasher.exe`;" 另外,如果我直接在Cygwin的shell中启动Crasher.exe,则不会调用崩溃处理程序; 如果通过Cygwin或ActiveState Perl中的反引号启动,它也不会被调用。

Windbg <未分类>内存区域

我想确定在哪里实际上eax寄存器指向[堆栈或堆]。在下面的windbg出来!地址出来放显示它未分类。 0:014> r eax=01198ce8 ebx=00000000 ecx=01198bf8 edx=00000000 esi=01196ed8 edi=01198160 eip=0710a501 esp=01e8fdc8 ebp=01e8fe28 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000202 libmp4v2!MP4GetVideoProfileLevel+0x3bbb: 0710a501 e83eec0000 call libmp4v2!MP4PrintVideoInfo+0xca2e (07119144) 0:014> d eax 01198ce8 76 69 64 65 00 04 38 00-04 00 02 00 cd 01 09 01 vide..8……… 01198cf8 […]

为什么threadpool.QueueUserWorkItem创build这么多事件句柄?

我写了一个程序,它每1秒调用一次ThreadPool.QueueUserWorkItem,但是这会导致大量的事件句柄消耗。 class Program { private static Timer _timer; static void Main(string[] args) { _timer = new Timer(Run, null, Timeout.InfiniteTimeSpan, Timeout.InfiniteTimeSpan); _timer.Change(new TimeSpan(0, 0, 0, 1), Timeout.InfiniteTimeSpan); Console.ReadLine(); _timer.Dispose(); } static void Run(object state) { ThreadPool.QueueUserWorkItem((object statex) => { int s = 0; for (int i = 0; i < 1000; ++i) { int j = […]

使用symstore.exe无法加载Windbg或Visual Studio中的小型转储符号

为了追踪只发生在Windows 8用户机器上的Qt崩溃,我设置了一个本地符号服务器来用于debugging崩溃转储。 首先我做了一个完整的构build,设置了以下标志: QMAKE_CFLAGS_RELEASE += -Zi QMAKE_CXXFLAGS_RELEASE += -Zi QMAKE_LFLAGS_RELEASE += /DEBUG /OPT:REF 并使用Windows Installer和VS部署项目构build了一个安装程序。 然后我运行了下面的symstore.exe命令: C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64>symstore.exe add /r /f C:\builddir\*.* /s "C:\Users\Sam\symbols" /t "Application" /v "rev xxxx" /c "test add" 这在C:\Users\Sam\symbols创build了合适的dll,exe和pdb文件夹。 然后,我安装在用户机器上,并通过Process Explorer生成一个小型转储文件。 我尝试加载转储到Visual Studio中,并将C:\Users\Sam\symbols到符号文件位置,但是我的二进制文件找不到匹配的符号。 然后我试着将它加载到WinDbg64(这是一个64位应用程序)。 我设置!sym noisy用.symfix C:\Users\Sam\symbols设置符号path并使用.reload /f重新加载。 这没有任何成功,只有在加载的地方输出符号。 例如: QtGui4 No data is available : SRV*C:\Users\Sam\symbols*http://msdl.microsoft.com/download/symbols The SYMSRV […]

testingMS-CAPI CSP,即使使用WinDbg内核debugging,签名也会失败

尝试在Win 7下testing新的CSP。设置启动configuration以允许内核debugging,运行WndDbg并selectfile:kernel debug并设置为本地。 试图用我的新CSP使用signtool仍然导致签名失败检查。 环境是: 操作系统名称:Microsoft Windows 7家庭高级版 OS版本:6.1.7601 Service Pack 1 Build 7601 OS制造商:微软公司 OSconfiguration:独立工作站 操作系统构buildtypes:多处理器免费 系统型号:戴尔系统Inspiron N7110 系统types:基于x64的PC 处理器:1个处理器(s)安装。 Intel64系列6型号42步进7 GenuineIntel〜2501Mhz BIOS版本:Dell Inc. A09,11/18/2011 Windows目录:C:\ Windows 系统目录:C:\ Windows \ system32 有关为什么内核debugging器的存在不妨碍testingCSP上的签名检查的任何想法? 该设置只能在远程debugging环境中使用吗?

debugging/解决WinDbg扩展问题(SwishDbgExt)

我目前正在学习Windows内存转储分析,我想使用称为SwishDbgExt的 WinDbg的开源扩展。 但是,当我运行WinDbg,与扩展加载,然后我尝试使用任何命令,打印此例外。 0: kd> !load C:\Users\Martin\Desktop\SwishDbgExt-master\bin\x64\SwishDbgExt.dll SwishDbgExt v0.6.2.20150116 (Mar 27 2015) – Incident Response & Digital Forensics Debugging Extension SwishDbgExt Copyright (C) 2014 MoonSols Ltd SwishDbgExt Copyright (C) 2014 Matthieu Suiche (@msuiche) – http://msuiche.net This program comes with ABSOLUTELY NO NARRANTY; for details type 'show w'. This is free software, and you are welcome […]

Windbgnetworkingdebugging连接错误

目标机器已安装Windows 8.1,主机已安装Windows 7(但主机操作系统与连接错误无关)。 我正在使用Windows 8.1 SDK包的debugging器。 目标机器上的设置 bcdedit /debug on bdcedit /dbgsettings net hostip:xx.xx.xx.xx port:xxxxx bcdedit /set {dbgsettings} busparams xyz 之后,我重新启动了目标机器。 错误日志 The transport connection between host kernel debugger and target windows seems lost. Please try resync with the target, recycle the host debugger or reboot the target windows. … Retry sending the same data […]

可以启用在Cygwinterminal运行非Cygwin应用程序的死后debugging吗?

我们有一个由Cygwin和非Cygwin程序组成的系统,所有这些程序都在Cygwin bash会话下运行。 其中一个非Cygwin可执行文件会周期性地崩溃,我正在尝试使用windbg进行验尸debugging,如此处所述 。 我写了一个故意崩溃的testing程序。 按照上面的步骤,当testing程序崩溃时,windbg会自动打开 – 完全是我在找的东西。 但是,如果我从Cygwin的bash运行testing程序,bash会打印出“Segmentation fault”(分段错误)错误消息,而windbg不会打开。 有没有办法让windbg在Cygwin bash shell启动的非Cygwin程序中崩溃? PS:我们所有的非Cygwin程序都是用MS Visual Studio编译的C程序。