如何在我正在远程调试的 Windows 驱动程序的源代码中设置断点



我在Windows上的内核开发一无所知:我可以将VS2015调试器附加到远程目标,当我单击" Break-All"时,远程机器会冻结,我可以在线程列表中看到4个CPU。我可以从MS符号服务器以及我由内核驱动程序的Debug Build PDB制作的本地副本中加载符号。但是,我如何实际将我本地的源代码附加到远程运行的机器上?

有一些我缺少的搭配。我在本地复制了驱动程序的PDB和源,以确定远程计算机已被冻结并且无法访问文件系统。也许我在那里错了。

但是,无论哪种方式,我都不确定要找到源代码为驱动程序运行的源代码并在Visual Studio中浏览它的机制。我以前从未使用过windbg,所以引用这对我没有帮助。

我已经搜索了Google和Google,我发现的所有信息都可以让我进入可以在即时窗口中附加和运行windbg命令的地方,但是我没有得到最后的位置调试器,所以我可以设置一个断点。

有什么想法吗?使用这些神奇的信息到网页上的指针?

谢谢。

好吧,我让它起作用。我认为这更是一个更好的问题。我将所有源和PDB从目标服务器复制到我的调试器/客户端计算机上的一组路径。将所有符号路径指向本地位置,启动了调试器(或更确切地说,附件(在源文件上进行了一个简单的文件 ->打开,添加了一个断点,在目标机器上触发了代码,瞧瞧!调试器停在断点上。不确定我昨天做错了什么,但是将路径复制到他们相同位置似乎已经为我点击了所有的零件。

这对我有用:能够构建和部署驱动程序后:在vs中,单击调试并将其附加到目标单击暂停,以便您可以输入调试命令输入以下命令:

.srcpath (源代码的路径(

.sympath (通往.pdb文件的路径;通常使用.sys(

现在打开您的源代码,并在某个地方放置一个断点并记下行。返回到Debug命令窗口并输入BL以列出断点点。这些断点现在应该显示在列表中。

这是一个逐步逐步示例的链接:https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger/debug-universal-drivers--Step-by-by-step-lab-echo-kernel-kernel-mode-mode-mode-

最新更新