intermediate-language

    4熱度

    2回答

    假設你用C#,VB,.NET編寫應用程序 當你點擊構建時,它真的編譯你的代碼嗎?我這麼認爲,直到我開始在我的一些程序集中使用redgates反射器,並逐字查看我的代碼。我會期望循環被展開,另一個優化過多,而不是什麼。 那麼編譯實際發生在什麼時候?我認爲,當它建立時,代碼變成IL(中介語言),當執行發生時,它將在CLR中加載?它僅在CLR期間進行了優化,從未在構建時進行過優化?

    20熱度

    3回答

    我想知道.maxstack是如何工作的。我知道它並不是與你聲明的類型的實際大小有關,而是與它們的數量有關。我的問題是: 這是否適用於只是爲了 功能,或所有我們所要求的功能 ? 即使它只是爲功能 分別是.maxstack正在申報, 你怎麼知道什麼是maxstack如果 你有分支?你去看看 所有的「路徑」,並返回 可能的最大值? 如果將其設置爲16, 實際上有17個變量會發生什麼? 如果我將 設置爲2

    0熱度

    4回答

    如果我在方法的開始處添加1行,如果我在第一行通過Visual Studio設置斷點,它會指向第一行還是第二行?如果它會標記錯誤的行,那麼編輯.exe文件時我們可以做些什麼來確保稍後進行常規調試會話? 是不是有沒有像設置行x是Y?我記得在某處看到類似的東西,不知道.NET是否相關。

    3熱度

    2回答

    任何人都可以爲IL入門提供任何好的資源。特別是如果有人知道任何好書或屏幕錄像,我將不勝感激。

    1熱度

    2回答

    在函數執行過程中,是否完全可能設置一個指向當前棧的指針(稍後將被拾取),然後釋放當前線程(無需展開調用棧)並將其返回給線程池?然後,有另一個線程拿起那個線程停止的地方?我知道這意味着調用函數的人不會知道當前的線程上下文會發生變化,並且可能會涉及編寫一些自定義的IL代碼來執行此類操作,但有沒有辦法執行此操作?

    1熱度

    2回答

    我使用任意IL構建CFG,並想將該CFG轉換回IL。 CFG中頂點的順序當然不等於原始IL指令的順序。 這很好,但過於複雜一些東西。想象: Jump 'B' 'C': Return 'B': Jump 'C' 這將導致一個流圖是這樣的:(跳轉B) - >(跳轉C) - >(返回) 當然,這是一個簡化的例子,但轉換出來時,它示出了該問題的CFG。 在學術界有沒有關於此主題的任何信息?我認爲自

    5熱度

    4回答

    最近提到的PostSharp讓我想起了這件事: 去年我工作的地方,我們正在考慮用PostSharp在我們的代碼中插入工具。這是在Team Foundation Server團隊構建/持續集成環境中。 考慮一下,我對PostSharp的運行方式感到嘮叨不已 - 它編輯了編譯器生成的IL。這讓我困擾了一下。 我並不擔心PostSharp不會正確地完成工作;我擔心這是我第一次聽到有關這樣的工具的消息。我