Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 在本地计算机上调试驱动程序_Debugging_Kernel - Fatal编程技术网

Debugging 在本地计算机上调试驱动程序

Debugging 在本地计算机上调试驱动程序,debugging,kernel,Debugging,Kernel,为什么现在没有像SoftICE这样的GUI内核调试器,它允许在本地机器上调试内核驱动程序?为什么Windows 7及更高版本中的驱动程序调试必须使用远程计算机?系统内核模式调试器是一个极其复杂的软件,因为它必须处理许多底层内核资源和操作。如果内核内部在下一个OS版本中发生更改,则必须相应地更新调试器。调试器开发人员必须与内核开发人员一起工作,并且可以访问内核源代码。所有这些都使得系统内调试器开发变得复杂和昂贵 在开发系统上进行任何内核模式的调试都是一个危险且不方便的过程。即使BSOD不会导致FS

为什么现在没有像SoftICE这样的GUI内核调试器,它允许在本地机器上调试内核驱动程序?为什么Windows 7及更高版本中的驱动程序调试必须使用远程计算机?

系统内核模式调试器是一个极其复杂的软件,因为它必须处理许多底层内核资源和操作。如果内核内部在下一个OS版本中发生更改,则必须相应地更新调试器。调试器开发人员必须与内核开发人员一起工作,并且可以访问内核源代码。所有这些都使得系统内调试器开发变得复杂和昂贵

在开发系统上进行任何内核模式的调试都是一个危险且不方便的过程。即使BSOD不会导致FS损坏和/或其他数据丢失,启动开发系统、启动所有必需的应用程序以重新创建方便的开发环境也比重新启动哑目标机(硬件或虚拟机)要长得多

当硬件计算机价格昂贵,没有高效的远程调试接口,也没有高效的虚拟机解决方案时,SoftICE是一种可以接受的工具。但是在过去的15年里,Windows中的远程内核调试有了很大的改进,因此使用WinDbg比使用SoftICE方便得多,尽管WinDbg有很多缺陷和bug