Skip to main content

Vs2019環境でILを覗く

.NETの中間言語であるILをVS2019環境で覗く方法をメモります。

本題に入る前に、ILとは


JITコンパイル前のバイトコード。ネイティブコード生成前のバイトコード。

自分はまだ完全理解者でないので、素晴らしい文献を紹介しておきます。

ILを理解するためのおすすめ文献

.NETの中間言語

それでは本題に入ります。

.exeファイルの生成


まずは適当にコードを書いて.exeファイルを生成します。

ここでは”1 + 1″を標準出力するプログラムをコンパイルする事とします。

“1+1″の計算結果を標準出力するプログラム。

このプログラムを保存した後、「Developer PowerShell for VS 2019」を起動し、”ls”や”cd”を駆使して先程書いたプログラムが存在するディレクトリへ移動します。

Developer PowerShell for VS 2019にてアクセス

そしてC#で.exeファイルを生成する時におなじみのコマンド

csc .exe化したいファイル名.cs

で.exeファイルを生成します。

.exeファイルが生成できた

 

ILファイルの生成


次にILファイルを生成します。

ILファイルを生成するときには “ildasm [options] [PEfilename] [options]” というコマンドを使用します。
しっかりと公式ドキュメントを読みたい方はこちらから。

今回は”Test.il“というファイルに生成されるILアセンブラーを格納したいと思うので

ildasm .exeファイル名 /output:Test.il

と入力し、ILファイルを生成します。

ILファイルを無事に生成できた

おまけ:ILファイルをCatしてみる


生成したILファイルの中身を実際に見てみると、結構楽しいです。

凄腕C#erになるとILファイルを読めるらしいですが、未熟な自分にはまだまだ読めたものではないです、、、

生成したILファイルのCLASS MEMBERS DECLARATIONの部分を抜粋

そのうちしっかりとILを読んでみて、C#の気持ちになれたら良いなと思っています。

Atria

大学生個人開発者| AtCoder(茶) / C# / VBA /その他趣味いっぱい