デバッガーで.NET言語を正しくステップ実行する
まず、この質問が長く続いたことをお詫び申し上げます。 私はIronSchemeの作者です。最近私は「ネイティブ」の.NETデバッガーを使用できるように、まともなデバッグ情報を出力するように努力しています。 これは部分的に成功していますが、歯が生える問題に直面しています。 最初の問題はステッピングに関連しています。 Schemeが式言語であるため、ステートメント(または行)ベースのように見える主要な.NET言語とは異なり、すべてが括弧で囲まれる傾向があります。 元のコード(Scheme)は次のようになります。 (define (baz x) (cond [(null? x) x] [(pair? x) (car x)] [else (assertion-violation #f "nooo" x)])) 私はわざとそれぞれの表現を改行でレイアウトしています。 生成されたコードは(ILSpyを介して)C#に変換されます。 public static object ::baz(object x) { if (x == null) { return x; } if (x is Cons) { return Builtins.Car(x); } return #.ironscheme.exceptions::assertion-violation+( RuntimeHelpers.False, "nooo", …