ntsd

可均可可3 个月前
windbg·任务管理器·dump·ntsd·事后调试
Advanced .Net Debugging 10:事后调试一、介绍     这是我的《Advanced .Net Debugging》这个系列的第十篇文章。这篇文章的内容是原书的第三部分的【高级主题】的第八章【事后调试】。前面几篇文章,我们介绍了很多工具,可以帮助大家找出问题的所在。但是,有一类问题我们是没办法使用这些工具来解决的,那就是已经发布的程序。在程序发布后,总是会出现一些问题,并且这些问题出现的时机是不确定的,大多数出现在用户在使用软件的过程中。想要解决这样的问题,我们当然会想到远程调试,有时候可以,有时候是不可以的,当然,不可以的理由会有很多,比如:
可均可可6 个月前
windbg·clr·程序集·ntsd
Advanced .Net Debugging 6:程序集加载器EntityUtil 类的代码Program 类的代码在 GAC 中的程序集必须是强命名的,并且拥有唯一的版本号。在共享程序集加载的过程中(在默认的加载上下文中),CLR 加载器会首先检查 GAC 来确定这个程序集是否存在,然后再查看私有的加载路径。             我们可以使用【Windbg Preview】工具,使用【lm f】命令查看目标进程中所有已加载的模块以及它们相应的加载路径。这个很简单,直接贴结果。这个里面,我使用【lm】和【lm f】两个命令,大家可以自己体会区别。
可均可可6 个月前
windbg·thread·gc·clr·ntsd·值类型·引用类型·托管堆
Advanced .Net Debugging 3:基本调试任务(对象检查:内存、值类型、引用类型、数组和异常的转储)打开【NTSD】调试器窗口。继续使用【g】命令,运行调试器,等调试器卡住后,按【ctrl+c】组合键键入调试器的中断模式。                     切换到主线程,执行命令【~0s】。
可均可可7 个月前
windbg·断点·clr·ntsd
Advanced .Net Debugging 3:基本调试任务(上)如果没有指定任何参数,只能显示一组可用的选项。我们将我们的项目完整路径和项目名称作为输入参数。执行【ntsd E:\Visual Studio 2022\Source\Projects\AdvancedDebug.NetFramework.Test\ExampleCore_3_1_1\bin\Debug\net8.0\ExampleCore_3_1_1.exe】,弹出新窗口,如图: