草庐IT

windows - WinDbg 中的 Python Clik 模块

我一直在使用click模块已经有一段时间了,我认为它很棒。但是我在WinDbgpython插件中使用它时遇到了一些问题。我正在使用以下脚本,它在Linux中运行良好:importclick@click.group()defshell():pass@shell.command()@click.option('--name',help='Yournameplease')defhello(name):click.echo(name)if__name__=="__main__":shell()脚本的成功调用如下所示(这是在Linux命令行中):#pythontest.pyhello--name

windows - 为什么 dumpbin 中可执行文件的入口点地址与 WinDbg 不同?

我想了解加载可执行文件的机制,所以我用notepad.exe做了两个不同的测试1)运行转储命令:dumpbin/ALL"C:\Windows\System32\notepad.exe"/OUT:"C:\sample\log4.txt"我在OPTIONALHEADERVALUES下得到了以下值:1AC50entrypoint(000000014001AC50)WinMainCRTStartup1000baseofcode140000000imagebase(0000000140000000to0000000140042FFF)2)运行WinDbg:xnotepad!*CRT*我得到了这些

.net - 与崩溃转储相比,WinDbg 在附加到进程时显示不同的调用堆栈

我正在分析将native库与托管代码一起使用时发生的死锁。我正在使用WinDbg来调试问题,目的是保存转储,以便供应商可以在他们的场所观察到问题。当附加到有问题的进程时,我在任何调用堆栈之前看到以下消息:WARNING:Stackunwindinformationnotavailable.Followingframesmaybewrong.当直接附加到进程时,框架实际上看起来是正确的。但是,当我对该文件进行转储,然后在另一台机器上的WinDbg中打开转储时,其中一个堆栈帧不同(也显示了上述错误。)这最初让供应商感到难过,因为代码路径似乎是不可能的.我使用了转储:.dump/mafile

windows - 为意外停止的 Windows 服务生成内存转储

如何为意外停止的Windows服务生成内存转储? 最佳答案 1)下载ProcDump2)在管理员命令提示符下,在与procdump相同的目录中,键入:procdump-ma-e.exe3)等待crash并生成dump 关于windows-为意外停止的Windows服务生成内存转储,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/27704301/

windows - Windbg 将指针视为有符号整数

structNode{structNodeYNY;intdata;};当我这样做时,对于该结构的实例指针“N”2:kd>?poi(poi(N))Evaluateexpression:-70368698399456=ffffc000`02ba8520基本上我想用这样的东西bpigdkmd64!KmRender+0x199".if(@@(N)>0x1){}.else{gc}"因此,大多数情况下它是正确的,但由于windbg将其视为有符号整数,上述条件断点始终为假,因为@@(N)始终计算为负数。如何比较2个内存地址的数量? 最佳答案 kd

windows - 使用 windbg 检查传递给函数的参数

我正在研究Windows系统编程第4课中的一些示例。使用windbg.exe我正在尝试检查传递给函数(GetCurrentDirectoryA)的参数。以下是来源。int_tmain(intargc,LPTSTRargv[]){/*BuffertoreceivecurrentdirectoryallowsfortheCR,LFattheendofthelongestpossiblepath.*/TCHARpwdBuffer[DIRNAME_LEN];DWORDlenCurDir;lenCurDir=GetCurrentDirectory(DIRNAME_LEN,pwdBuffer);i

windows - 在 WinDbg 中设置断点失败

我的工作流程如下。配置WinDbg的符号文件路径和源代码文件路径。打开一个源代码文件以供稍后调试。按F9,尝试在源代码中设置断点。WinDbg弹出一个错误对话框,提示“在修改断点之前必须停止调试对象。”谁能告诉我为什么?我的WinDbg版本是6.11.0001.404(X86),WindowsXP64位。我正在从非常复杂的运行时系统中调试一个dll。我写了一个简单的exe,点击打开。打开后,我立即打开源代码文件并设置一个断点。它适用于这种情况! 最佳答案 提示在错误中,“Debuggeemustbestoppedbeforebrea

windows - 在 Secur32!ImpersonateSecurityContext 处设置断点

我正在调试一个程序并想使用windbg在Secur32!ImpersonateSecurityContext设置一个断点。我的高级Windows调试一书告诉我,我应该能够使用此命令bpSecur32!ImpersonateSecurityContext设置断点。不幸的是,它对我来说失败了。我确实检查了我的符号路径,我相信它是正确的。如果我在windbg中运行xSecur32!*,我也会得到一些符号。000007fe`fd481f28Secur32!LsaQueryInformationPolicy=000007fe`fd481b18Secur32!_delayLoadHelper2=0

windows - 使用 WinDbg 打印内存对象

我有一个简单的C++服务,它从文件中读取文本并通过网络发送它。随着时间的推移,此服务的内存消耗会在客户站点增加。在QA测试中没有观察到此类行为。我想知道是否可以在任何给定时间提取内存中的所有字符串对象。是否可以将此过程自动化,以便我在不同时间从客户那里获取转储,并找出每次内存的大小或内容并比较结果。 最佳答案 对于C++,答案是否定的(在C#中是另一回事)。在C++世界中,如果您怀疑有泄漏,您可能希望在“泄漏”发生之前在进程上启用用户模式堆栈跟踪(+ustingflags.exe)。发生泄漏后,获取进程的转储并进行检查。要检查它(我

windows - 使用调试器如何从父进程获取子进程的 PID

我想知道,使用windbg或任何其他调试器如何获取父进程创建的子进程的PID。示例:附加到任意运行的“进程A”的调试器。当调试器附加到进程A(父进程)时,进程A使用kernel32!CreateProcess*或kernel32!CreateProcessInternal创建另一个子进程(进程B)。那么如何从进程A获取进程B的PID呢??主要是我想用pydbg来做,但如果我知道如何使用windbg手动实现这个,我希望我能用pydbg做同样的事情。提前致谢 最佳答案 在WinDbg中,还有命令.childdbg1,这样您就可以简单地调