【问题标题】:Kernel debugging in VS 2012VS 2012 中的内核调试
【发布时间】:2013-08-31 19:07:16
【问题描述】:

我有一个内核模式过滤器驱动程序项目。主机:Win8 Pro x64 运行 VS2012,目标:Win8 Pro x64 VM 在同一台机器上。我能够通过网络通过 VS 2012 配置 VM。我部署了包项目。当我尝试从 VS 部署和安装包时,我无法成功。所以我手动安装了驱动程序,驱动程序工作正常。手动安装驱动程序后,我附加到 VM 的内核并单击 Break all。我在 VS '12 的即时窗口中找到了 Kd 控制台。我输入命令“bu !DriverEntry”,然后输入“g”命令。我看到消息 Debuggee 正在运行。当我在我的代码上放置断点并按 VM 中的任意键时,我没有看到断点在我的代码中被击中。需要帮助!!

【问题讨论】:

    标签: visual-studio-2012 kernel wdk kernel-mode


    【解决方案1】:

    使用 Fltmc 命令加载过滤器并将其附加到特定驱动器

    您可以直接在VS中放置断点而无需在控制台中输入,如果您在输入fltmc load“过滤器名称”后加载过滤器VS应该在驱动程序入口函数断点处停止,您可能还需要附加它。

    当您单击中断所有目标机器应该冻结时,不要忘记检查您的调试器是否正在工作。

    【讨论】:

    • fltmc 命令必须通过 VS 键入?我会尝试并回复您
    • 您在具有管理员权限的目标计算机上键入命令提示符
    • fltmc 命令不起作用。当我尝试从同一文件夹加载驱动程序时,它给了我错误无法加载驱动程序。
    • 无论您从哪里运行它,它都会查找安装在您系统上的驱动程序。不知道为什么会出现该错误,不要忘记以管理员权限运行命令并尝试使用仅加载过滤器模板而不使用附加代码。
    【解决方案2】:

    我无法通过 VS 进行调试。我去解决了,这次我使用了 Win7 VM。利用 KdPrint() 方法并使用 DebugView 工具查看消息。这是一个漫长的过程,但至少我可以调试我的驱动程序。希望这对其他人也有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      • 2013-11-13
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      相关资源
      最近更新 更多