当前位置: 首页 > article >正文

Mono里运行C#脚本41—编译MonoEmbed::gimme()调用的过程

前面已经分析了一下怎么嵌入内部调用的函数,如下文:
Mono里运行C#脚本34—内部函数调用的过程
https://mysoft.blog.csdn.net/article/details/145335991?spm=1001.2014.3001.5502

但是下面的代码编译时,怎么样样处理呢?
call string class MonoEmbed::gimme()

这行代码是在Main () 的第一行代码。
所以在编译这个函数时,就会对函数 MonoEmbed::gimme()进行编译。
也就是说在Main()函数进行JIT阶段,就会对函数 MonoEmbed::gimme()进行编译,但不会在此阶段生成它的JIT代码。

当Main函数进行JIT时遇到这行代码,就会在函数mono_method_to_ir里面处理。
由于这行指令是call指令,所以会在下面的代码进行处理:
    case MONO_CEE_CALL:
    case MONO_CEE_CALLVIRT: {
        ...
        fsig = mono_method_signature_internal (cmethod);
        ...

当运行到这行代码时,就会查


http://www.kler.cn/a/535992.html

相关文章:

  • 深浅拷贝~
  • 【STM32系列】利用MATLAB配合ARM-DSP库设计IIR数字滤波器(保姆级教程)
  • 大语言模型极速部署:Ollama 、 One-API、OpenWebUi 完美搭建教程
  • 零基础Vue入门6——Vue router
  • RabbitMQ 从入门到精通:从工作模式到集群部署实战(三)
  • 三星OEM版SSD固态硬盘Model码对应关系
  • Java实现数据库图片上传(包含从数据库拿图片传递前端渲染)-图文详解
  • 3. kafka事务消息
  • 分布式事务实战 ——Seata 与最终一致性方案
  • Cables Finance发布 V1.1 白皮书:开创RWA敞口新范式
  • 第二篇:前端VSCode常用快捷键-以及常用技巧
  • ORACLE 数据库的启动和关闭
  • LLM的Deep Research功能:重构人类认知与创新的新范式
  • SQL Server中RANK()函数:处理并列排名与自然跳号
  • tomcat如何配置保存7天滚动日志
  • NLP知识点
  • 7-1 什么是机器学习
  • C语言数据结构编程练习-排序算法
  • 2.1-STL库中string类的模拟实现
  • DIY Shell:探秘进程构建与命令解析的核心原理
  • 蓝桥杯小白打卡第二天
  • 【大模型LLM面试合集】大语言模型架构_Transformer架构细节
  • java高级工程师面试题_java高级工程师面试题及答案解析
  • 【原子工具】快速幂 快速乘
  • 基于Flask的商城应用系统的设计与实现
  • vscode中的编辑器、终端、输出、调试控制台(转载)