相关文章  
  • 浅谈如何利用BartPE创建PE工具盘
  • Windows Mobile 2003 Second Edition 中 ActiveSync 编程模型的增强功能
  • 在完成所有绑定后仍然有许多要进行的操作
  • 在你的企业中管理Windows和应用程序
  • 动态加载用户控件的组件
  • 小心GDI+资源泄漏 -- 猜想 测试 应对全过程
  • 浅谈 C# 中的代码协同 (Coroutine) 执行支持
  • 在 C# 中处理结构内的数组源代码分析
  • 教你通过 Emit 实现动态生成一个类
  • 如何才能在10046event自由漫步
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    谈 WinDbg 之 InternalCall 的使用与实现3

    -------------------------------
      MethodDesc Table
      Entry MethodDesc  JIT  Name
      
      799917c0 79b7ebc8  PreJIT [DEFAULT] [hasThis] String System.String.ToString()
      ...
      79b7e253 79b7e258  None  [DEFAULT] [hasThis] I4 System.String.InternalLength()
      ...
      
      0:003> !DumpMD 79b7e258
      Method Name : [DEFAULT] [hasThis] I4 System.String.InternalLength()
      MethodTable 79b7daf8
      Module: 79b66000
      mdToken: 060000b1 (e:windowsmicrosoft.net rameworkv1.1.4322mscorlib.dll)
      Flags : 1
      IL RVA : 0073000b
      
      通过上述命令我们可以看到,String.InternalLength 方法缺省没有经过 JIT 编译,其入口地址为 79b7e253。反汇编此地址的指令,并一路追述下去可以发现,实际上最终也是调用 mscorwks!PreStubWorker 方法:
      
      以下为引用:
      
      0:003> u 79b7e253
      mscorlib_79980000+0x1fe253:
      79b7e253 e8287ffeff    call 

    页码:[1] [2] [3] [4] [5] [6] [7] [8] [9]3页、共9页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved