小弟我因为项目需要,想自己写个有调试器部分功能的程序,只是在网上找不到资料
,唯一能找到的只有msdn上的几篇。如果哪位大哥有编写调试器的资料(英文,中文,ring 0 ,ring 3均可),希望能够给我,谢谢!!

解决方案 »

  1.   

    http://www3.3800cc.com/Article/cxsj/hbyy/jcjchbyy/2005-08-06/Article_45297.html
      

  2.   

    这个还是有一定难度的我只能说一些零碎的东西:
    单步调试其实就是插入int3;
    还有VC的源码调试依赖的是.pdb文件,softIce依赖nms文件,
    这些文件是编译器生成的,包含了源码和中断等信息
    ……帮不了具体的上面忙,如果有战果,别忘了上来说一声
      

  3.   

    只是普通的debugger的话,windows提供了一套调试函数族。
      

  4.   

    谢谢大家,实际上,调试API,写进程空间等一般的调试功能我知道
    只是想找一些系统的资料来看一下,例如实际上调试API提供的数据并不能满足需要,例如加载
    动态库时不知道动态库的名字等等,这些零碎问题调试器都会一一解决,我就是想多知道一些。另外ring 0的调试器怎么写,我一点概念都没有,有人又资料吗???
      

  5.   

    可以看看 John Robbins 所著的<Debugging Applications>(中文版《应用程序调试技术》)
    里面有讲了一点,并有一个简单的Ring3 debugger例子。驱动开发网上面有一个 Windows下类softice的ring0调试器源码 BlindStudio 
      

  6.   

    softice和windbg是两套完全不同的东西。前者是因为掌管了所有的中断,不依赖windows内核的任何调试api,等于说windows是运行在softice上的;后者是利用了内核提供的功能,是windows事先设计好的。