卒論
卒論が終わらにゃい(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