簡體   English   中英

對 Scala function 中的每個語句進行計數的檢測

[英]Instrumentation to count every statement in a Scala function

我有一個簡單的Scala function ,我想在每次執行語句時增加一個 class 變量。

    class C {
        var cnt: Int: 0

        def fun(): Unit = {
             var a: Int = 0
             var b: Int = -10
             var sum: Int = 0
             sum = a + b
             return sum
        }
    }

我希望 function 是這樣的:

    class C {
        var cnt: Int: 0

        def fun(): Unit = {
             var a: Int = 0
             cnt = cnt + 1
             var b: Int = -10
             cnt = cnt + 1
             var sum: Int = 0
             cnt = cnt + 1
             sum = a + b
             cnt = cnt + 1
             return sum
        }
    }

但是在軟件級別這樣做會使代碼變得混亂。 我可以使用字節碼操作來實現這一點,還是應該干預其他級別的編譯?

我不確定是誰在這個問題中添加了標簽 Byteman,但 Byteman 無法幫助您解決這個問題。 正如之前的海報所說,這並不是一個可以使用字節碼操作來解決的問題。 字節碼與源代碼行和源語句邊界有一個相當不透明的鏈接,並且通常不可能從字節碼中編碼的指令中派生出任何一種類型的邊界。

基於語言解析器的源到源翻譯器將是一個更好的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM