methodLineTables 字串格式

methodLineTables 資料字串是以類別中之每個可執行單元的 單一項目來將表格編碼。

methodLineTables 表格中每個項目的值會對應到 classSourceFile 資料字串(可執行單元的程式碼行號)所參照之程式檔中的行號。

以下是 methodLineTables 字串的範例︰
#51+1201#75+11,41
以下是字串的解譯方式︰
  • 跟隨在 # 記號之後的數字代表類別程式碼中的完整行號。在範例中,類別之第一個方法的第一個可執行單元是在第 51 行。
  • 跟隨在加號 ("+") 之後的每個數字代表要新增到前一行號的行數,以產生下一個可執行單元的行號。在範例中,跟隨在加號 (+1201) 之後的數字,是用來計算第二到第五個可執行單元的行號︰
    1. 51 + 1 = 第二個可執行單元行號︰52
    2. 52 + 2 = 第三個可執行單元行號︰54
    3. 54 + 0 = 第四個可執行單元行號︰54(兩個可執行單元在同一指令行)
    4. 54 + 1 = 第五個可執行單元行號︰55
  • 當行號增量是負值或大於九,即會指定可執行單元的完整行號。在範例中,第六個可執行單元是在第 75 行,比前一個行號 (55) 多二十。在此情況下,第六個可執行單元指定完整行號,相對的行號計算重新開始 (#75+11)︰
    1. 75 = 第六個可執行單元行號
    2. 75 + 1 = 第七個可執行單元行號︰76
    3. 76 + 1 = 第八個可執行單元行號︰77
  • 逗點 (",") 表示一個方法的結束和下一個方法的開頭。逗點之後的數字和符號解譯與前面相同。在範例中,第二個方法的第一個可執行單元行號比前一個方法計算的最後行號只多 4,所以在逗點之後繼續相對行號計算 (,41):
    1. 77 + 4 = 第二個方法的第一個可執行單元行號︰81
    2. 88 + 1 = 第二個方法的第二個可執行單元行號︰89
註: 不是所有的可執行單元都會有關聯的程式碼資訊。部分是由編譯器所建立用來實作 Java 語言的語意;例如,異常狀況處理、起始設定或同步化。這些產生的可執行單元在 methodLineTables 字串中將有為零的完整行號。完整行號零表示沒有行號資訊。當整個方法都沒有程式碼資訊時,將會出現對應行號零的單一可執行單元。
以下是 methodLineTables 字串與其意義的一些其他範例︰
methodLineTables 字串 意義
+5 如果第一個方法的第一個可執行單元行號小於十,整個字串以加號為開頭,從零開始增量序列。在此範例中,第一個方法的第一個可執行單元在第 5 行開始。
+0 如果第一個方法沒有程式碼資訊,字串將從 +0 開始。套用到這類方法的任何 executableUnit 探針片段只會在方法的開頭插入一次。
...#437,#457+123... 如果方法的第一個可執行單元,在前一個方法的最後一個可執行單元之後超過九行才開始,則型樣為逗點、# 記號,以及新方法中第一個可執行單元的行號字串。在此局部範例中,新方法中的第一個可執行單元,在前一個方法的最後一個可執行單元之後 20 行開始。
...#437,+2... 方法中的最後一個可執行單元可能需要 "#" 記號,而且下一個方法中的第一個可執行單元可能在一小段距離以外。在此局部範例中,某個方法的最後一個可執行單元在第 437 行開始,下一個方法的第一個可執行單元在第 439 行開始。

上層主題: Probekit 元素參照

相關參考
Data 探針物件

Terms of use | Feedback
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.