草庐IT

windows - 在 windbg 中调试 "release-mode"二进制文件/转储

我还没有找到在windbg中调试RELEASE模式二进制文件或转储的好资源。据我了解,启用编译器优化后,调试会变得更加受限。但有时我别无选择——例如,对不可重现的问题进行故障转储分析。如果有一些文章描述发布二进制文件的可能性(或注意事项),那就太好了。有人知道这样的资源吗?我正在寻找类似this的内容,但有更多的细节。我希望AdvancedWindowsDebugging会有一些东西,但没有这样的运气。 最佳答案 第一条规则:保留来自您发布的每个构建的所有pdb:来自exe和您生成的任何其他dll第二条规则:尝试获得重现步骤,因为能

windows - 如何查看我的程序堆栈跟踪?

我正在尝试学习WinDbg。在简单的程序中,我在CriticalSection上无限等待。我的程序挂起,我使用任务管理器获取程序转储。现在,每当我使用kc或k命令获取堆栈跟踪时,它都会给我以下堆栈跟踪。wow64cpu!CpupSyscallStubwow64cpu!Thunk0ArgReloadStatewow64!RunCpuSimulationwow64!Wow64LdrpInitializentdll!LdrpInitializeProcessntdll!_LdrpInitializentdll!LdrInitializeThunk现在,为什么它不显示我实际代码的堆栈跟踪。我如

mysql - 如何将多个转储文件导入到 windows 中的 mysql?

我需要使用windows命令提示符将多个转储文件导入mysql。如何导入文件。mysql-hlocalhost-uroot-proot-P3306--databasesdb1,db2我这样试过,但没用。我如何在bat文件中编写这种命令。谢谢 最佳答案 使用两个命令(我认为mysql中没有--databases选项,您是否将它与mysqldump混淆了?)。mysql-hlocalhost-uroot-proot-P3306db1 关于mysql-如何将多个转储文件导入到windows中的

Windows 服务应用程序上的 Java5 - 获取 Full Thread Dump 需要说明

我在这里浏览了几篇文章,例如:javastackdumponwindowsThreaddumpprogrammatically/JDI(JavaDebuggerInterface)但没有得到确切的答案。问题:Windows上有一个作为服务运行的Java5应用程序(因此我们没有可以使用Ctrl+Break进行转储的控制台)。有时应用程序挂起,我们需要一个线程转储。我们试过“jstack”但它在我们的环境中不起作用(我们发现它只兼容Java6)。所以我们制作了一个C++应用程序,它通过附加到Java应用程序进程的.dll调用方法调用线程转储,因此它需要本地管理员权限,这不是很好。因此,我们

windows - 创建 QEmu guest 操作系统的 WinDbg 可读转储

我在Linux上运行QEmu,虚拟化操作系统是WindowsXP。我想要第一种或第二种可能性:在QEmu中应用一个命令,创建一个可以用WinDbg打开的转储在QEmu中应用一个创建特定类型转储的命令,然后使用另一个实用程序使其可被WinDbg读取我知道QEmu的“dump-guest-memory”(创建ELF转储)、rekall的raw2dmp插件和Volatility的raw2dmp插件。WinDbg可以扫描输出,但实际上您会遇到header错误的问题-可能是转储中最重要的部分,当使用上述工具/插件创建转储时,这毫无用处。许多字段缺少正确的详细信息。与Windows操作系统本身创建

windows - Windows 任务管理器中的 "dump file"是什么?

我知道在Windows中,您可以通过转到任务管理器->进程->右键单击​​进程来生成转储文件。什么是转储文件?我可以用.dmp文件做什么? 最佳答案 .dmp文件是一个Minidump,它是实时进程的快照,包含有关其当前状态的信息(包括内存、堆栈跟踪、线程信息、模块信息、异常上下文信息)。此信息允许您检查流程的快照。它通常在进程由于未处理的异常而即将崩溃时生成,但可以在任何时候获取。它可以使用MiniDumpWriteDump创建API,并使用任何Windows调试器(如VisualStudio1)或WinDbg,KD,CDB,NT

windows - WinDbg 窗口符号

我正在尝试调试我编写的应用程序的转储文件。我将以下符号路径添加到WinDbg我假设这会下载调试它所必需的Windows符号。然后我在WinDbg中运行以下命令“!analyze-v”这开始分析,然后由于找不到符号而失败。当我查看C:\MyServerSymbols时,我看到以下内容我希望看到的不仅仅是kernelbase.dll分析命令提示找不到ntdll符号。下面是它给我的完整输出。有谁知道如何获取它需要的符号吗?0:001>!analyze-v**********************************************************************

python - json.dump() 在 Windows 和 Linux 上的不同行为

我编写了一个python脚本,使用请求库以json格式从网站检索数据,然后将其转储到一个json文件中。我已经使用这些数据编写了很多代码,并且仅在Windows中对其进行了测试。最近换了个linux系统,执行同样的python脚本时,json文件中key的顺序完全不一样。这是我正在使用的代码:API_request=requests.get('https://www.abcd.com/datarequest')alertJson_Data=API_request.json()#Toconvertreturneddatatojsonjson.dump(alertJson_Data,jso

c++ - 如何处理 .dump/.dump 文件?

我正在研究MySQL用户定义函数(UDF),它基本上是Windows系统函数的包装器。我的问题是UDF对于某些输入按预期工作,但会导致mysqld对于其他输入崩溃。UDF本身采用单个整数参数,该参数未经修改地作为ULONG参数传递给WinAPI函数。当这个整数小于某个数k时,一切正常;但是,当整数大于或等于k时,MySQL服务器进程(mysqld.exe)始终崩溃。我的64位Windows7机器总是生成“AppCrash”详细信息,其中包括MDUMP和HDUMP文件。有没有办法在VisualC++中打开这些文件中的任何一个来检查崩溃时的堆栈跟踪? 最佳答案

windows - 我可以从 Windows 上的 ghc Haskell 进程转储中收集哪些信息?

我的命令行应用程序的一位用户报告说出现了一个无限循环。当进程处于这种状态时,他们很有帮助地转储了进程(通过任务管理器)并将其发送给我。我不确定如何从这个转储中获取有用的信息。我的windbg-zthe-dump-file.dmp-yreleases\v5.0.0-ireleases\v5.0.0的常规技术没有提供太多我知道如何解释的信息。我可以改用特定于ghc的工具吗?下一步,我应该在发布过程中添加构建选项还是我应该做的其他事情,以使这种事后调试更有成效?这是我看到的堆栈示例。没有太多有用的信息,特别是对于习惯在WinDbg中调试C/C++代码的人来说。:-)0Id:112dc.cc1