我想检查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 输出?
单声道反汇编器,从程序集中提取 IL 代码:
monodis FILE-name
完整的参考资料可以在这里找到: https://www.mono-project.com/docs/tools+libraries/tools/monodis/
拆/组装CIL代码(单声道项目(