草庐IT

debugging - Windbg,如何检查内存段权限?

例如输出堆栈为不可执行,某些堆是可执行/不可执行.. 最佳答案 !address或!vprot(UM)扩展显示虚拟内存保护信息。0:000>!address0038f750Usage:StackAllocationBase:00290000BaseAddress:0038d000EndAddress:00390000RegionSize:00003000Type:00020000MEM_PRIVATEState:00001000MEM_COMMITProtect:00000004PAGE_READWRITEMoreinfo:~0k0

debugging - Windbg内存映射?

如何在Windbg中获得类似于Ollydbg的内存映射功能的内存映射?我想按顺序查看地址空间列表,显示加载到每个范围内的内容,理想情况下显示内存保护。这是Ollydbg的内存映射的屏幕截图: 最佳答案 !address准确显示此信息。它适用于用户模式和内核模式。用户态进程示例:0:000>!addressBaseAddressEndAddress+1RegionSizeTypeStateProtectUsage--------------------------------------------------------------

memory - 我可以从 WinDbg 运行 .NET 垃圾收集吗?

我正在研究为什么托管进程使用大量内存。有没有办法从WinDbg运行GC.Collect(3),这样我就可以专注于实际的内存分配? 最佳答案 我认为没有任何方法可以从WinDbg运行.NET垃圾收集,但我也认为没有必要。见RicoMariani'sPerformanceTidbits-Trackingdownmanagedmemoryleaks(howtofindaGCleak)了解有关找出堆中的内容的信息。其他可能有用的链接:WhentocallGC.Collect()ScottDorman-.NETMemoryManagement

c++ - 为什么即使在调试版本中,VS 和 Windbg 也会将 "this"指针打印为 "0xcccccccc"?

我尝试在进入成员函数时使用windbg打印“this”指针,如下所示。classIBase{intm_i;public:IBase():m_i(23){}virtualintFuncOne(void)=0;virtualintFuncTwo(void)=0;};classDerivedOne:publicIBase{public:virtualintFuncOne(void){return1;};//setbreakpointhere.virtualintFuncTwo(void){return2;};};classDerivedTwo:publicIBase{public:virtu

使用WinDbg调试程序异常和死锁等问题

一、在使用WinDbg调试之前,我们先使用VS的调试功能  1、文件->打开->文件->打开Dump文件     2、调试->选项->调试->符号->添加该应用的.pdb所在的文件夹   3、使用仅限托管进行调试    正常情况下会执行到抛出异常的位置,并且显示异常详情。二、WinDbg下载路径:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-download-tools 旧版需要单独配置符号路径,某些版本符号路径没办法全部下载下来,有一些遗漏导致功能用不了,推荐去上面的官网下载新版本SRV

使用WinDbg调试程序异常和死锁等问题

一、在使用WinDbg调试之前,我们先使用VS的调试功能  1、文件->打开->文件->打开Dump文件     2、调试->选项->调试->符号->添加该应用的.pdb所在的文件夹   3、使用仅限托管进行调试    正常情况下会执行到抛出异常的位置,并且显示异常详情。二、WinDbg下载路径:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debugger-download-tools 旧版需要单独配置符号路径,某些版本符号路径没办法全部下载下来,有一些遗漏导致功能用不了,推荐去上面的官网下载新版本SRV

关于 c : 如何在 WinDbg 中查看 .dmp 调试中的 MFC Class 字段?

HowtowatchMFCClassfieldin.dmpdebuggingwithWinDbg?我有一个MFC应用程序的故障转储(.dmp)。应用程序包含MFC类,例如容器(CMap)。我确认应用程序崩溃是为了引用一些容器。但是,,,我只有发布版本的故障转储,并且应用程序错误无法重现。所以想知道用WinDbg看MFC类容器的方法。感谢任何帮助/指针。在这种情况下,"watch"没有意义。小型转储是程序被轰炸时状态的冻结副本。我的描述不正确。我想检查内存快照中容器的成员。您的问题有点令人困惑,但我相信您想要的是windbg中的\\'dt\\'命令。基本用法是这样的:dtMY_TYPE_HERE

关于 c : 如何在 WinDbg 中查看 .dmp 调试中的 MFC Class 字段?

HowtowatchMFCClassfieldin.dmpdebuggingwithWinDbg?我有一个MFC应用程序的故障转储(.dmp)。应用程序包含MFC类,例如容器(CMap)。我确认应用程序崩溃是为了引用一些容器。但是,,,我只有发布版本的故障转储,并且应用程序错误无法重现。所以想知道用WinDbg看MFC类容器的方法。感谢任何帮助/指针。在这种情况下,"watch"没有意义。小型转储是程序被轰炸时状态的冻结副本。我的描述不正确。我想检查内存快照中容器的成员。您的问题有点令人困惑,但我相信您想要的是windbg中的\\'dt\\'命令。基本用法是这样的:dtMY_TYPE_HERE