c# - 使用 mono 在 Linux 上查看 C# 代码的 CIL

标签 c# linux mono cil

我想检查生成的 CIL Linux 上以下 C# 源文件的代码:

using System;
namespace PrintPrimes
{
    class Algorithm
    {
        static bool IsPrime(int p)
        {
            for (int i=2;i<p;i++)
            {
                for (int j=i;j<p;j++)
                {
                    if (i*j == p)
                    {
                        return false;
                    }
                }
            }
            return true;
        }
        static void Main() 
        {
            for (int p=2;p<=20;p++)
            {
                if (IsPrime(p))
                {
                    Console.WriteLine(p + " ");
                }
            }
        }
    }
}

当我编译并运行它时一切正常:

$ mcs -out:PrintPrimes PrintPrimes.cs
$ ./PrintPrimes
2 
3 
5 
7 
11 
13 
17 
19 

但是我怎样才能得到人类可读的 CIL 输出呢?

最佳答案

Mono 反汇编程序,从程序集中提取 IL 代码:

monodis FILE-name

可以在这里找到完整的引用: https://www.mono-project.com/docs/tools+libraries/tools/monodis/

分解/汇编 CIL 代码(单声道项目)

关于c# - 使用 mono 在 Linux 上查看 C# 代码的 CIL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52050379/

相关文章:

java - Mono 中的 SystemException 和 ApplicationException 与 Java 中的未检查和已检查异常相同吗?

c# - Xamarin.Android 访问文件系统

c# - 将数据从 Html.EditorFor 传递到 Controller

c# - 从完整的日期时间模式中仅提取日期模式

c# - 使用 setter 时,何时应该在多线程单例中锁定静态实例?

linux - 有一个更好的方法吗?巴什

c# - 模态对话框

linux - 打开的文件太多 - KairosDB

linux - 程序在ssh中不停运行

android - monodroid 和桌面应用程序的通用库