使用 mono 在 Linux 上查看 C# 代码的 CIL
View CIL of C# code on Linux with mono
我想在 Linux 上检查以下 C# 源文件生成的 CIL 代码:
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/
Dis/Assembling CIL 代码(单声道项目)
我想在 Linux 上检查以下 C# 源文件生成的 CIL 代码:
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/
Dis/Assembling CIL 代码(单声道项目)