卒論

卒論が終わらにゃい(TT

内容は前回述べたとおり、動的情報解析でして、具体的にはこういう感じです。

たとえばユークリッドの互除法のプログラム

class test {
	public static int f(int m, int n) {
		int t;
		while (n != 0) {
			t = m % n;
			m = n;
			n = t;
		}
		return m;
	}
	public static void main(String argv[]) {
		f(8, 12);
	}
}

があったとき、現在作成中の解析機にかけると、

<?xml version="1.0" encoding="shift_jis" standalone="no" ?> 
<hoge>
  <MethodCall name="Ltest;main">
    <MethodCall name="Ltest;f">
      <Step line="0">
	<LVar name="m" value="8" />
      </Step>
      <Step line="0">
	<LVar name="n" value="12" />
      </Step>
      <Step line="2">
	<LVar name="t" value="8" />
      </Step>
      <Step line="3">
	<LVar name="m" value="12" />
      </Step>
      <Step line="4">
	<LVar name="n" value="8" />
      </Step>
      <Step line="2">
	<LVar name="t" value="4" />
      </Step>
      <Step line="3">
	<LVar name="m" value="8" />
      </Step>
      <Step line="4">
	<LVar name="n" value="4" />
      </Step>
      <Step line="2">
	<LVar name="t" value="0" />
      </Step>
      <Step line="3">
	<LVar name="m" value="4" />
      </Step>
      <Step line="4">
	<LVar name="n" value="0" />
      </Step>
    </MethodCall>
    <Return value="4" />
  </MethodCall>
  <Return value="0" />
</hoge>

といったXMLファイルを得ることができる。
こういうものをJVMTIというJDKに含まれるツールを使って作っています。

が、いまだint型の局所変数しか取得してません。

しかも行番号がうまく取れません。

教授は「例外とかマルチスレッドとかも取ってね。」とか仰ってます。


誰か助けてorz