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

    谈 WinDbg 之 InternalCall 的使用与实现4

     mscorlib_79980000+0x1e6180 (79b66180)
      79b7e258 4d        dec   ebp
      ...
      
      mscorlib_79980000+0x1e6180:
      79b66180 e9eb805e86    jmp   0014e270
      79b66185 0000       add   [eax],al
      ...
      
      0:003> u 0014e270
      0014e270 52        push  edx
      ...
      0014e290 56        push  esi
      0014e291 e8b4870879    call  mscorwks!PreStubWorker (791d6a4a)
      0014e296 897b08      mov   [ebx+0x8],edi
      ...
      
      这个 PreStubWorker 函数(vm/prestub.cpp:574)可以说是所有 IL 函数进行 JIT 的入口,负责编译 IL 代码以生成 Native 代码,并将 JIT 生成的代码入口安装到相应 MD (MethodDesc) 上:
      以下内容为程序代码:
      
      extern "C" const BYTE * __stdcall PreStubWorker(PrestubMethodFrame *pPFrame)
      {
      MethodDesc *pMD = pPFrame->GetFunction();
      MethodTable *pDispatchingMT = NULL;
      
      if (pMD->IsV

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

         

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

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