gpt4 book ai didi

.net - 使用 Windbg SOS 扩展单步执行源代码

转载 作者:行者123 更新时间:2023-12-04 06:22:14 26 4
gpt4 key购买 nike

我最近从 native 代码编程切换到托管代码编程。我正在使用.NET。

由于我使用 Windbg 已经有一段时间了,我也想将它用于托管代码调试。

我的搜索将我带到了 SOS(罢工之子)扩展程序,它似乎有一些非常强大的命令。

尽管我了解 SOS 中使用的大多数命令,但我无法找到正确单步执行源代码的方法,就像我可以使用 native 代码的 p 和 t 指令一样。

这让调试体验变得很困难,我真的很想在调试的同时单步调试代码。

我对此进行了一些研究,发现使用 6.7.05.0 版本的 Windbg 是可能的,其中 MS 似乎发布了集成托管调试,但在更高版本中回滚。

尽管如此,我对能够在通过 SOS 调试时实时单步执行“源”代码非常感兴趣。特别是因为它现在真的阻碍了我的调试体验。

有没有办法实现这一目标?

感谢有关如何执行此操作(或实际解决方法)的任何帮助。

最佳答案

Windbg 在分析崩溃进程的小型转储方面表现出色。然而,它不是托管调试器。

您可以通过在 Visual Studio 中加载 SOS 来吃蛋糕。这允许使用您在托管调试器中可用的常规调试工具,以及您可以从 SOS 中获得的诊断。一些限制适用:

  • 您必须启用非托管调试,项目 + 属性,调试选项卡,勾选选项
  • VS 是 32 位进程,因此您只能使用 32 位版本的 SOS。如果您使用的是 64 位版本的 Windows,请选择项目 + 属性、构建选项卡,确保您选择了 x86。

  • 开始调试并切换到即时窗口。类型 .load sos.dll ,您应该会看到类似 extension C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll loaded 的消息.键入 !help 并验证您是否看到列出的 SOS 命令。

    关于.net - 使用 Windbg SOS 扩展单步执行源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13116549/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com