新四季網

通過修改跟蹤操作減少跟蹤開銷的製作方法

2023-11-03 05:06:17

專利名稱:通過修改跟蹤操作減少跟蹤開銷的製作方法
技術領域:
本發明涉及數據處理的領域,並且特別涉及程序行為監視的領域。
背景技術:
數據處理設備變得越來越複雜,並且因此,在未提取和分析大量數據的情況下,為 優化或故障查找而分析其性能變得越來越困難。 —種用於監視程序行為的熟知技術是收集可由硬體或插入程序中的代碼生成的 跟蹤數據。因此,在響應跟蹤調用的程序執行的某些點上,將輸出對應於跟蹤調用的跟蹤數 據。此跟蹤數據可指示在該點的處理器的狀態、特定變量的值和/或此跟蹤調用發生的時 間。 然而,以此方式監視程序的行為有多個缺陷。將跟蹤調用插入程序中能改變其行 為和使其行為失真,而插入的代碼增大了程序的大小和它執行所用的時間。此外,以此方式 會很容易生成大量數據,而通常用於從硬體傳送跟蹤數據的帶寬是有限的。
最好是能夠在仍收集有用的跟蹤數據的同時減輕這些缺點中的至少一些。

發明內容
本發明的第一方面是提供一種編譯電腦程式的方法,所述電腦程式包括用於 觸發由所述電腦程式生成的跟蹤數據的輸出的多個跟蹤操作,所述編譯的方法包括以下 步驟將所述電腦程式變換成形成所述電腦程式的中間版本的代碼;分析所述變換的 代碼;將所述跟蹤操作的至少一些替代為修改的跟蹤操作;將所述代碼變換成適合在數據 處理系統上執行的代碼;以及生成將所述修改的跟蹤操作關聯到它們替代的所述跟蹤操作 的轉換數據。 本發明認識到,當電腦程式被編譯以生成代碼的表示或中間版本時,至少一些 代碼的排序被更改。在電腦程式代碼包含跟蹤操作的情況下,則這些跟蹤操作也可在代 碼內移動,並且這可更改其效力。本發明認識到,代碼的此中間版本的分析使得能夠識別和 在適當之處去除可能是由於代碼的重新組織而產生的跟蹤操作中的冗餘。因此,在分析之 後,某些識別的跟蹤操作被替代為修改的跟蹤操作,例如,生成冗餘數據的跟蹤操作可以被 去除或與其它跟蹤操作合併。代碼的分析和在此階段修改跟蹤操作能促使代碼內的跟蹤操 作的數量減少,使它更類似於無任何跟蹤操作的不測試的代碼,它也可減少需要處理的跟 蹤操作的量,由此減少目標系統的處理開銷,並且它可減少生成的冗餘數據量,從而減少輸 出跟蹤數據所需的帶寬。本發明也認識到,跟蹤操作的修改可能使分析跟蹤數據的系統不 能理解它們,並且因此,它生成指示已如何修改跟蹤操作的轉換數據。此轉換數據允許修改 的跟蹤操作輸出的跟蹤數據與它們替代的跟蹤操作相關,並且因此,修改的代碼輸出通過 使用轉換數據能理解的跟蹤數據。因此,本發明允許在編譯器階段修改跟蹤操作,使得能夠 更有效地生成和輸出跟蹤數據。 在一些實施例中,所述方法分析所述變換的代碼以確定所述至少一些跟蹤操作,其替代為修改的跟蹤操作將減少所述跟蹤操作的執行的成本,並且依據所述分析來選擇要 替代的所述至少一些跟蹤操作。 在分析如何修改跟蹤操作時,本發明的實施例尋求減少跟蹤操作的執行的成本, 並由此提高在執行跟蹤時跟蹤的效率。通過在編譯器階段修改跟蹤操作,不但能生成更少 的跟蹤數據,而且能減少跟蹤操作的數量,這能減少處理能力、使用的能量和執行時間。因 此,本發明尋求減少與跟蹤相關聯的成本,這些成本可包括生成的跟蹤數據量、執行的跟蹤 操作的數量、執行時間和生成跟蹤所需的功率和能量。 在一些實施例中,所述替代步驟包括將至少所述跟蹤操作的兩個替代為至少一個 修改的跟蹤操作。 雖然修改的跟蹤操作可替代單個原跟蹤操作,但修改的跟蹤操作可能生成更少跟 蹤數據,在一些實施例中,修改的跟蹤操作是通過合併幾個跟蹤操作來生成的。因此,兩個 跟蹤操作可替代為單個修改的跟蹤操作,或者多個跟蹤操作可替代為更少的修改的跟蹤操 作。這減少了執行的跟蹤操作的數量,並且在被替代的幾個跟蹤操作的一些操作輸出相同 數據時,也可減少輸出的跟蹤數據量。 在一些實施例中,所述分析步驟包括識別代碼的所述中間版本的基本塊內的至少 兩個跟蹤操作,所述基本塊是代碼塊,在其內如果執行一個指令,則將執行所述指令的所有
指令,並且所述替代步驟包括將所述至少兩個跟蹤操作替代為所述修改的跟蹤操作的至少一個。 能合併的跟蹤操作的示例是在代碼的中間版本的基本塊內的跟蹤操作。基本塊是 代碼塊,在其中如果執行一個指令,則將執行所有指令。因此,在同一基本塊中存在的跟蹤 操作將全部被執行,並因此能合併成更少的跟蹤操作。 在一些實施例中,所述替代步驟包括將所述跟蹤操作的至少一個替代為至少一個 修改的跟蹤操作和相關聯的時間戳校正數據,所述時間戳校正數據指示相對於所述修改的 跟蹤操作的執行,所述至少一些跟蹤操作何時將執行。 跟蹤數據可包含時間戳,指示執行跟蹤操作的時間。因此,如果原跟蹤操作將包含
時間戳數據,則與修改的跟蹤操作相關聯的轉換數據也包含時間戳數據,指示相對於修改
的跟蹤操作的執行,修改的跟蹤操作替代的原跟蹤操作將何時執行,會是有利的。 在一些實施例中,生成轉換數據的所述步驟包括生成在所述跟蹤操作的每個和替
代它們的所述修改的跟蹤操作的執行之間周期的數量的估計。 計算相對於修改的跟蹤操作,原跟蹤操作何時將執行的一種方式是估計操作之間 的周期的數量並在轉換數據中包括此估計。因此,如果修改的跟蹤操作包括時間戳數據,則 能做出各個跟蹤操作原本將何時產生其跟蹤數據的估計。 在一些實施例中,所述替代步驟包括將所述跟蹤操作的至少一個替代為修改的跟
蹤操作,該修改的跟蹤操作輸出的數據比所述至少一個跟蹤操作輸出的更少。 修改的跟蹤操作替代其它跟蹤操作以便減少跟蹤操作的執行的成本,並且這可以
是通過輸出比原跟蹤操作所輸出的更少的數據來實現。在中間版本階段代碼的分析可識別
一些輸出的數據是冗餘數據,即,與已經輸出的數據是相同的數據,或能從已經輸出的數據
計算得出的數據。如果情況是這樣,此數據無需輸出(假如生成的轉換數據使得它能夠從
輸出的數據推導出)。
在一些實施例中,所述替代步驟包括將所述跟蹤操作的至少一個替代為修改的跟 蹤操作,該修改的跟蹤操作需要所述電腦程式執行的處理步驟比所述至少一個跟蹤操作 需要的更少。 能減少的另一成本是由於處理步驟產生的成本,並且修改的跟蹤操作可能使得它
需要計算機執行的處理步驟比它替代的跟蹤操作更少。例如,跟蹤操作可能需要輸出兩個
變量的乘積,這意味著目標系統將需要計算此值。如果目標系統上的處理能力是非常珍貴
的,則單獨輸出兩個值並在分析跟蹤數據的系統上計算乘積會是有利的。 在一些實施例中,所述跟蹤操作的至少一個包括標記數據,指示在所述跟蹤操作
被替代為所述修改的跟蹤操作之一時能移動的程度,在確定要替代的跟蹤操作時,所述替
代的步驟響應所述標記數據。 標記數據可能與跟蹤操作相關聯。此標記數據是向編譯器提供提示或指令的數 據,並且在代碼的最終編譯版本中不存在。此標記數據可包括在修改期間能移動跟蹤操作 的程度的數據指示。當分析代碼的中間版本並將跟蹤操作替代為修改的跟蹤操作時,考慮 此標記數據,使得替代具有標記數據的原跟蹤操作的修改的跟蹤操作不會遠於此原跟蹤操 作允許的量。 在一些實施例中,所述電腦程式包括屏障(barrier)指示,跟蹤操作不能跨越 所述屏障指示移動來形成修改的跟蹤操作。 作為對編譯器的指示或指令存在的其它信息可能是屏障指示,這些指示能採用多 種形式,並且可例如是指令。這些指示能插入程序中以指示編譯器不要跨越它們移動跟蹤 操作。類似於標記數據,這些指示從編譯的代碼的最終版本中刪除,但由編譯器用於幫助它 以正確的方式重新組織代碼。 在一些實施例中,所述方法包括在所述變換的程序內包括代碼以用於控制執行所 述代碼的處理器輸出所述轉換數據的又一步驟。 生成的轉換數據與變換的代碼一起輸出是可以的,在這種情況下,變換的代碼將 包括控制執行代碼的處理器輸出轉換數據的步驟。這樣,轉換代碼將經執行編譯的代碼的 處理器可供分析器使用。在其它實施例中,轉換數據以不同方式變得可用於分析器,例如, 經數據存儲。此後一種方式可以是其中編譯代碼和分析跟蹤數據的設備是相同設備的情 況。備選地,轉換數據可嵌入在程序二進位碼內,但在執行時不輸出。例如,它可以是與從 分析跟蹤數據的分析器上的二進位碼的單獨副本讀取的二進位碼相關聯的調試表的形式。
在一些實施例中,所述方法還包括兩個步驟在將所述至少一些跟蹤操作替代為 修改的跟蹤操作的所述步驟後,分析所述修改的代碼;將所述跟蹤操作的至少一些或修改 的跟蹤操作替代為修改的跟蹤操作;以及重複所述兩個步驟,直至分析所述修改的代碼的 所述步驟指示,當與所述以前修改的代碼相比時,所述修改的代碼未顯著減少所述跟蹤操 作的執行的成本。 跟蹤操作的修改能以遞歸方式完成,以便它們被修改,並且修改的代碼被分析,並 且進行進一步修改,直至進一步修改不再產生顯著成本節約的點為止。應注意的是,在進一 步的步驟中替代的跟蹤操作可以是原跟蹤操作和/或在以前步驟中已經修改的那些操作。 通過比較需要的處理步驟的數量並發現它們並未減少,或者比較執行的速度並發現這未被 減少大於預定的量(這被判定為是不重要的),則能夠斷定進一步修改不再產生顯著成本節約的點。 本發明的第二方面提供一種監視程序行為的方法,包括接收跟蹤數據和轉換數 據,所述跟蹤數據是響應由正在被監視的所述程序執行的跟蹤操作而輸出的跟蹤數據,所 述轉換數據包括對應於所述跟蹤操作的至少一些的數據,所述跟蹤操作的所述至少一些是 修改的跟蹤操作;識別響應所述修改的跟蹤操作而生成的跟蹤數據;以及使用所述轉換數 據來轉換所述識別的跟蹤數據以生成轉換的跟蹤數據,所述轉換的跟蹤數據表示由所述程 序在它被修改前的版本中存在的跟蹤操作原本將輸出的跟蹤數據。 通過使用也由本發明的第一方面生成的轉換數據,能理解和分析已根據本發明的 第一方面編譯的程序生成的跟蹤數據。因此,修改的跟蹤操作生成的跟蹤數據被識別,並且 相關的轉換數據被發現,並且修改的跟蹤數據隨後能被重新構建以形成表示由程序在它被 修改前的版本中存在的跟蹤操作原本將輸出的跟蹤數據的跟蹤數據。隨後,能分析此跟蹤 數據。 雖然表示由程序在它被修改前的版本中存在的跟蹤操作原本將輸出的跟蹤數據 的轉換的跟蹤數據能夠採用多種形式(假設轉換的跟蹤數據與原跟蹤數據足夠類似,以使 得它能夠由預期原數據的工具來分析),但在一些實施例中,除可能稍微不同的時間戳外, 它在所有方面與原跟蹤數據相同,而且在一些實施例中,可能可保證這些時間戳也是相等 的。 在一些實施例中,方法包括使用所述跟蹤數據來分析所述程序行為的又一步驟。
—旦跟蹤數據已修正成類似於原跟蹤數據的形式,它便能夠由預期原跟蹤數據的 常規工具來分析,或者由用於分析此特定編譯的代碼的工具來分析。 在一些實施例中,從正在被監視的所述系統接收所述轉換數據與所述跟蹤數據, 而在其它實施例中,轉換數據存儲在分析系統上,或者它放入在準許的位置的文件中,或者 放入可執行文件的節(section)中,或者它能夠是分析系統引用的程序的存儲器映像的一 部分。 本發明的第三方面提供一種分析在嵌入式系統上執行的電腦程式的行為的方
法,所述電腦程式包括用於觸發由所述電腦程式生成的跟蹤數據的輸出的多個跟蹤操
作,所述方法包括以下步驟將所述電腦程式變換成形成所述電腦程式的中間版本的
代碼;分析所述變換的代碼;將所述跟蹤操作的至少一些替代為修改的跟蹤操作;將所述
代碼變換成適合在數據處理系統上執行的代碼;以及生成將所述修改的跟蹤操作關聯到它
們替代的所述跟蹤操作的轉換數據,以允許解釋響應所述修改的跟蹤操作而輸出的跟蹤數
據;將所述變換的代碼輸出到所述數據處理系統;將所述轉換數據輸出到程序監視設備;
在所述數據處理系統上執行所述變換的代碼;在所述程序監視設備從所述數據處理系統接
收跟蹤數據;識別所述跟蹤數據內響應所述修改的跟蹤操作而生成的跟蹤數據;使用所述
轉換數據來轉換所述識別的跟蹤數據以生成表示由所述程序在它被修改前的版本中存在
的跟蹤操作原本將輸出的跟蹤數據的跟蹤數據;使用所述跟蹤數據來分析所述程序行為。 代碼的編譯及隨後對生成的跟蹤數據的分析能在單個設備上執行。 本發明的第四方面提供一種用於控制數據處理設備以執行本發明第一方面的方
法的步驟的電腦程式。 本發明的第五方面提供一種用於控制數據處理設備以執行本發明第二方面的方法的步驟的電腦程式。 本發明的第六方面提供一種用於編譯電腦程式的編譯器,該電腦程式包括用
於觸發由所述電腦程式生成的跟蹤數據的輸出的多個跟蹤操作,所述編譯器包括變換
電路,用於將所述電腦程式變換成形成所述電腦程式的中間版本的代碼;分析電路,用
於分析所述變換的代碼;其中所述變換電路響應所述分析電路執行的分析,將至少一些跟
蹤操作替代為修改的跟蹤操作,並將所述代碼變換成適合在數據處理系統上執行的代碼,
以及生成將所述修改的跟蹤操作關聯到它們替代的所述跟蹤操作的轉換數據。 本發明的第七方面提供一種用於監視程序行為的分析設備,包括輸入,用於接收
跟蹤數據和轉換數據,所述跟蹤數據是響應由正在被監視的所述程序執行的跟蹤操作而輸
出的跟蹤數據,所述轉換數據包括對應於所述跟蹤操作的至少一些的數據,所述跟蹤操作
的所述至少一些是修改的跟蹤操作;識別電路,用於識別響應所述修改的跟蹤操作而生成
的跟蹤數據;轉換電路,用於使用所述接收的轉換數據來轉換所述識別的跟蹤數據以生成
轉換的跟蹤數據,所述轉換的跟蹤數據表示由所述程序在它被修改前的版本中存在的跟蹤
操作原本將輸出的跟蹤數據。 結合附圖閱讀下面說明性實施例的詳細說明,將明白本發明的上述和其他目的、 特徵和優點。


圖1示意示出用於監視由嵌入式系統處理的電腦程式的行為的數據處理設備; 圖2示出用於編譯包括跟蹤操作的代碼的數據處理設備; 圖3示出被修改以形成修改的跟蹤操作的跟蹤操作的一些示例; 圖4是示出在用於在分析修改的跟蹤數據前將其轉換成常規跟蹤數據的方法中
的步驟的流程圖;以及 圖5是示出用於在電腦程式的編譯期間修改跟蹤數據的方法中的步驟的流程 圖。
具體實施例方式
圖1示出用於監視由嵌入式系統20正在執行的電腦程式的行為的數據處理設 備10。要分析的程序由編譯器40編譯。 電腦程式在程序代碼內具有跟蹤操作,其在被處理時觸發跟蹤數據的輸出。這 些操作可以是許多不同事務,包括"跟蹤調用"指令、函數調用、內聯函數調用、宏和特殊機 器代碼指令、根據跟蹤操作的跟蹤數據輸出。 在編譯器40編譯期間,程序被變換成代碼的表示或中間版本。此變換可涉及在代 碼內來回移動函數和指令。 除重新布置代碼以將它設置成適合的形式以便由嵌入式系統20執行外,編譯器 40修改至少一些跟蹤操作以嘗試減少與它們相關聯的開銷。這些開銷可包括生成的跟蹤數 據量、跟蹤操作的數量和需要的處理能力。 開銷的此減少涉及避免或至少減少冗餘跟蹤數據的生成,將跟蹤操作合併在一 起,以及在一些實施例中更改跟蹤數據輸出以減少在目標系統上的處理要求。因此,由於程
9序代碼的重新布置,現在在同一基本塊內出現於彼此附近的跟蹤調用能合併以形成單個修
改的跟蹤調用。此外,如果兩個自變量x和y由一個跟蹤調用輸出,並且隨後其乘積由第二
跟蹤調用輸出,則這兩個跟蹤調用能合併,以便只有第一跟蹤調用被輸出,並且兩個值的相
乘由分析跟蹤的分析器(主機調試器)而不是目標系統20來執行。跟蹤調用的此類合併 具有加快目標系統20處理代碼的速度並使代碼的執行更類似於無跟蹤操作的原程序的執 行的優點。 因此,編譯器40編譯要測試的程序並修改代碼內的跟蹤操作。跟蹤操作的修改可 以遞歸方式進行,因為可幾次修正修改的跟蹤操作的集合,並且分析變換的代碼,直至發現 無進一步的或僅無關緊要的與跟蹤相關聯的成本節約。這些成本節約是在跟蹤操作的執行 的成本方面的節約,並且包括在生成的跟蹤數據、跟蹤操作的數量、處理能力、使用的能量 及執行時間方面的減少。編譯的代碼隨後由編譯器40輸出並發送到嵌入式系統20以用於 執行。除產生帶有修改的跟蹤操作的編譯的代碼外,編譯器40也生成轉換表,該表包含將 修改的跟蹤操作關聯到它們從其生成的跟蹤操作的信息。在此實施例中,此轉換表直接發 送到數據處理設備10上的數據存儲50。在其它實施例中,它可與編譯的代碼一起發送到嵌 入式系統20。在代碼在一個系統上編譯,並在不同系統上分析的情況下,這可能是適當的。
編譯的代碼隨後由嵌入式系統20執行,並且由編譯的代碼內的跟蹤操作生成的 跟蹤數據從嵌入式系統輸出並且在接口 60接收。此跟蹤數據隨後由數據處理設備10內的 分析器70分析。分析器70還訪問在數據存儲50中存儲的轉換表。因此,分析器70查看 跟蹤數據,並且它使用數據存儲50中存儲的轉換表將對應於它未預期的跟蹤調用(即原代 碼中不存在的跟蹤調用)的任何跟蹤數據重新構建成某種形式,該種形式與在如果跟蹤調 用未被修改的情況下將生成的形式有關,並且因此它能理解。重新構建的跟蹤數據可以是 與未修改的跟蹤調用將輸出的跟蹤數據相同,或者它可以除時間戳數據外是相同的。隨後, 它能使用常規分析技術分析此跟蹤數據。 為了能夠識別轉換表內的適當轉換數據,識別修改的跟蹤操作的數據與它生成的 跟蹤數據一起輸出,此識別數據也與轉換數據一起存儲在轉換表中。 通過以此方式修改跟蹤操作,編譯器40減少進行的跟蹤調用的數量的至少一些、 輸出的跟蹤數據及嵌入式系統20的處理開銷。 雖然在此實施例中未示出,但另外的壓縮技術可用於減少嵌入式系統20輸出的 數據。 圖2示出本發明的備選實施例,其中,數據處理設備12中的編譯器40編譯數據存 儲55中存儲的程序,並且在編譯程序的同時以類似於圖1的設備的方式修改程序的跟蹤操 作。然而,在此實施例中,編程程序的數據處理設備12不是分析它的設備。因此,生成作為 修改的跟蹤調用的碼本的轉換表由編譯器40經接口60與編譯的代碼一起輸出到嵌入式系 統20。編譯的代碼包含指示處理器輸出轉換表的指令。因此,在經輸出22連接到分析系統 時,嵌入式系統20運行編譯的代碼,並響應此代碼,經跟蹤輸出22將轉換表與生成的跟蹤 數據一起輸出。此跟蹤數據隨後能由此單獨的系統使用轉換表來分析。
在一些實施例中,該單獨的系統是帶有另外的塊的常規跟蹤分析器,該塊使用轉 換表將由修改的跟蹤操作生成的跟蹤數據轉換成本例將由原跟蹤操作輸出的跟蹤數據。一 旦此轉換已執行,則常規跟蹤分析器能分析跟蹤數據。
10
圖3示出被修改以形成修改的跟蹤操作的跟蹤操作的一些示例。圖3A示出三個 跟蹤事件,在此實施例中,這些事件是在編譯器已生成的代碼的中間表示內的基本塊中。認 識到這三個事件在同一基本塊內,使得如果執行一個事件,則將執行所有事件,並且它們包 含在各個跟蹤調用的執行之間將不改變的自變量,編譯器組合這些跟蹤調用以生成新的壓 縮跟蹤調用,在這個示例中它表示為C跟蹤19, x, y。 19是用於此修改的跟蹤調用的識別數 據,而x和y是輸出的自變量。這些自變量是由原三個跟蹤調用輸出的自變量。
除生成此壓縮的跟蹤調用外,編譯器還創建表,該表允許將修改的跟蹤數據轉換 回未修改的程序原本將傳送的跟蹤數據。在這個示例中,對應於此修改的跟蹤調用的表條 目如果轉換成人可讀形式,將看上去如圖3A所示。因此,它識別19為修改的跟蹤調用,並 且AB為它輸出的自變量。因此,在收到標記為19的跟蹤事件及兩個自變量(AB)時,分析器 能將這些與它預期的事件1進行匹配,並生成5和第一 自變量A的跟蹤數據,作為對應於原 未修改的跟蹤調用事件1的跟蹤數據。也能將它與預期的第二跟蹤調用事件2進行匹配, 並生成與修改的跟蹤調用一起接收的兩個自變量A和B(對應於x和y)的跟蹤數據。也能 將它與預期的第三跟蹤調用事件3進行匹配,並且將輸出第二自變量(即B)和數字7。
通常,跟蹤數據還附加有時間戳,並且系統可要求時間戳是唯一的或反映跟蹤操 作的原來表達的順序。此類情況下,在將修改的跟蹤數據轉換回原形式時,分析器可將額外 的欄位添加到與該修改的跟蹤事件一起接收的時間戳。因此,如果修改的跟蹤事件19具有 時間戳2000,則為三個原跟蹤調用生成的時間戳能夠對於事件1是2000. l,對於事件2是 2000. 2,並且對於事件3是2000. 3。備選地,在其它實施例中,編譯器可估計未修改的代碼 中單獨調用之間的周期數量,並且在如圖3B所示的表中包括該信息。此處,估計事件1為 在修改的跟蹤指令事件19之前5個周期發生,而估計事件2為在2個周期前發生,事件3 在3個周期後發生。因此,在修改的跟蹤數據具有時間戳,指示它在2000發生時,原跟蹤數 據能如圖所示重新構建。 像這樣來估計時間能導致一些時間戳和單獨的修改事件重疊,因此,在此類情況 下可能需要一種機制來調節時序以保存事件的正確排序。此類調節能內置到編譯器中。
能修改的備選跟蹤調用如圖3C所示,這些調用與減少輸出的數據量有關,並且也 與正在測試的目標系統需要的處理的量有關。在這個示例中,編譯器認識到輸出數據xy和 x+y不是必要的,並且只輸出x和y及指示原跟蹤調用將輸出xy和x+y的轉換數據使得調 試主機能夠從輸出的減少的數據生成另外的數據。在跟蹤調用需要自變量加特定值或相乘的兩個自變量一起輸出的其它實施例中,
可能最好是單獨輸出這些值,並在調試主機而不是目標系統上執行組合它們的處理步驟。
在一些情況下,這能導致輸出的跟蹤數據量增大,但在重點是減少目標系統的處理要求的
情況下,這可能是可接受的。應注意的是,如果由於非跟蹤的某一原因,程序需要自變量的
相乘值,則在此類情況下,相乘的值應被輸出,因為目標系統反正也需要執行這些相乘步
驟,並且輸出相乘的值減少了在調試主機上輸出的數據和執行的處理。 轉換數據的壓縮也能夠執行。例如,如果轉換的事件42對應於原事件X、 Y、 Z,並
且轉換的事件53對應於轉換的事件X、Y、Z、P、Q,則圖3D示出能如何通過使用為事件42存
在的信息來減少表示事件53需要的轉換表數據。 圖4示出一個流程圖,其示出將修改的跟蹤數據轉換成常規跟蹤數據並隨後分析它的方法。跟蹤數據與轉換表一起被接收。隨後,分析跟蹤數據,並且檢查由跟蹤調用生 成的每個跟蹤數據集或段以查看它是否對應於在原程序中存在的跟蹤調用。如果是,則檢 查下一跟蹤數據段。如果不是,則讀取轉換表,並且訪問對應於此操作的轉換數據,以及將 跟蹤數據修改為對應原程序原本將輸出的跟蹤數據。應注意,可不將它修改為與原跟蹤調 用原本將輸出的跟蹤數據相同,但它將足夠類似,以便預期原跟蹤數據的工具能分析它。例 如,如果跟蹤數據包含時間戳,則可能是這些時間戳與原調用原本將輸出的時間戳不完全 相同,然而,對於要分析的代碼,它們足夠類似。 圖5示出修改代碼中的跟蹤調用以減少代碼中的跟蹤調用的數量和輸出的跟蹤 數據的方法的一些步驟。應注意,所示步驟不一定按示出的順序執行,並且一些步驟可相互 並行執行。在所示示例中,基本塊中的多個跟蹤調用被合併以形成單個修改的跟蹤調用,由 此減少在代碼中跟蹤調用的數量並可能減少輸出的數據量。此外,輸出冗餘數據的跟蹤調 用也被識別和修改,以便不輸出冗餘數據。 未示出的其它優化步驟可在代碼上執行。例如,可檢測到標記為等冪的跟蹤事件,
並且在有同一事件的相鄰實例的情況下,只需要發射它們之一,因而能刪除其它實例。應注
意的是,這可能已經通過常規合併過程處理。此外,可能有對某些跟蹤操作的屏障指示或標
記,指示不應移動這些操作到其之外的限制。在決定有關合併跟蹤調用時,不進行超出這些
指定的限制之外的合併。另外,一些跟蹤事件可具有指示它們是要打開還是關閉及何時修
改跟蹤調用的標記,這些標記被分析,如果跟蹤調用要被關閉,則它從代碼中刪除。 在一些實施例中,可能有關於跟蹤數據能發射的事件的數量的限制,並且生成修
改的跟蹤事件可能增大事件的數量。在此限制成為問題的情況下,當確定要修改哪些跟蹤
事件或調用時,可執行圖中所示的那些步驟外的另外步驟以防止超出限制。在此類情況下,
編譯器分析代碼並計算各種事件的頻率,以便它能最有效地利用可用事件代碼,只產生較
頻繁發生的或減少大量的跟蹤操作或輸出的跟蹤數據的修改的事件。這樣做是為了嘗試從
編碼空間獲得最佳值。 雖然在本文參照附圖已詳細描述本發明的說明性實施例,但要理解,本發明並不 限於那些具體的實施例,並且在不脫離如所附權利要求定義的本發明範圍和精神的情況 下,本領域的技術人員可實現其不同的更改和修改。例如,在不脫離本發明範圍的情況下, 所附從屬權利要求的特徵可與獨立權利要求的特徵進行各種組合。
權利要求
一種編譯電腦程式的方法,所述電腦程式包括用於觸發由所述電腦程式生成的跟蹤數據的輸出的多個跟蹤操作,所述編譯的方法包括以下步驟將所述電腦程式變換成形成所述電腦程式的中間版本的代碼;分析所述變換的代碼;將所述跟蹤操作的至少一些替代為修改的跟蹤操作;將所述代碼變換成適合於在數據處理系統上執行的代碼;以及生成將所述修改的跟蹤操作關聯到它們替代的所述跟蹤操作的轉換數據。
2. 如權利要求1所述的方法,其中所述方法分析所述變換的代碼以確定所述至少一些 跟蹤操作,其替代為修改的跟蹤操作將減少所述跟蹤操作的執行的成本,並且依據所述分 析來選擇要替代的所述至少一些跟蹤操作。
3. 如權利要求1所述的方法,其中所述替代步驟包括將所述跟蹤操作的至少兩個替代 為至少一個修改的跟蹤操作。
4. 如權利要求3所述的方法,其中所述分析步驟包括識別代碼的所述中間版本的基本 塊內的至少兩個跟蹤操作,所述基本塊是代碼的塊,在其內如果執行一個指令,則將執行所 述指令的所有指令,並且所述替代步驟包括將所述至少兩個跟蹤操作替代為所述修改的跟 蹤操作的至少一個。
5. 如權利要求1所述的方法,其中所述替代步驟包括將所述跟蹤操作的至少一個替代 為至少一個修改的跟蹤操作和相關聯的時間戳校正數據,所述時間戳校正數據指示相對於 所述修改的跟蹤操作的執行,所述至少一些跟蹤操作何時將執行。
6. 如權利要求1所述的方法,其中生成轉換數據的所述步驟包括生成在所述跟蹤操作 的每個和替代它們的所述修改的跟蹤操作的執行之間的周期的數量的估計。
7. 如權利要求2所述的方法,其中所述替代步驟包括將所述跟蹤操作的至少一個替代 為修改的跟蹤操作,所述修改的跟蹤操作輸出的數據比所述至少一個跟蹤操作輸出的數據 更少。
8. 如權利要求2所述的方法,其中所述替代步驟包括將所述跟蹤操作的至少一個替代 為修改的跟蹤操作,所述修改的跟蹤操作需要所述電腦程式執行的處理步驟比所述至少 一個跟蹤操作需要的更少。
9. 如權利要求1所述的方法,其中所述跟蹤操作的至少一個包括標記數據,所述標記 數據指示所述跟蹤操作當被替代為所述修改的跟蹤操作之一時能移動的程度,在確定哪些 跟蹤操作要替代時,所述替代的步驟響應所述標記數據。
10. 如權利要求1所述的方法,其中所述電腦程式包括屏障指示,跟蹤操作不能跨越 所述屏障指示移動來形成修改的跟蹤操作。
11. 如權利要求1所述的方法,包括在所述變換的程序內包括代碼以用於控制執行所 述代碼的處理器輸出所述轉換數據的又一步驟。
12. 如權利要求2所述的編譯電腦程式的方法,所述方法還包括兩個步驟 在將所述至少一些跟蹤操作替代為修改的跟蹤操作的所述步驟後,分析所述修改的代碼;將所述跟蹤操作的至少一些或修改的跟蹤操作替代為修改的跟蹤操作; 以及重複所述兩個步驟,直至分析所述修改的代碼的所述步驟指示,當與所述以前修改的代碼相比時,所述修改的代碼未顯著減少所述跟蹤操作的執行的成本。
13. —種監視程序行為的方法,包括接收跟蹤數據和轉換數據,所述跟蹤數據是響應由正在被監視的所述程序執行的跟蹤 操作而輸出的跟蹤數據,所述轉換數據包括對應於所述跟蹤操作的至少一些的數據,所述 跟蹤操作的所述至少一些是修改的跟蹤操作;識別響應所述修改的跟蹤操作而生成的跟蹤數據;使用所述轉換數據來轉換所述識別的跟蹤數據以生成轉換的跟蹤數據,所述轉換的跟 蹤數據表示由所述程序在它被修改前的版本中存在的跟蹤操作原本將輸出的跟蹤數據。
14. 如權利要求13所述的監視程序行為的方法,其中除任何時間戳數據外,所述轉換 的跟蹤數據與由所述程序在它被修改前的版本中存在的跟蹤操作原本將輸出的跟蹤數據 相同。
15. 如權利要求13所述的監視程序行為的方法,包括使用所述跟蹤數據來分析所述程 序行為的又一步驟。
16. 如權利要求13所述的監視程序行為的方法,其中從正在被監視的所述系統接收所 述轉換數據和所述跟蹤數據。
17. —種分析在嵌入式系統上執行的電腦程式的行為的方法,所述電腦程式包括 用於觸發由所述電腦程式生成的跟蹤數據的輸出的多個跟蹤操作,所述方法包括以下步 驟將所述電腦程式變換成形成所述電腦程式的中間版本的代碼; 分析所述變換的代碼;將所述跟蹤操作的至少一些替代為修改的跟蹤操作; 將所述代碼變換成適合於在數據處理系統上執行的代碼;生成將所述修改的跟蹤操作關聯到它們替代的所述跟蹤操作的轉換數據,以允許解釋 響應所述修改的跟蹤操作而輸出的跟蹤數據;將所述變換的代碼輸出到所述數據處理系統;將所述轉換數據輸出到程序監視設備;在所述數據處理系統上執行所述變換的代碼;在所述程序監視設備從所述數據處理系統接收跟蹤數據;識別所述跟蹤數據內響應所述修改的跟蹤操作而生成的跟蹤數據;使用所述轉換數據來轉換所述識別的跟蹤數據以生成表示由所述程序在它被修改前 的版本中存在的跟蹤操作原本將輸出的跟蹤數據的跟蹤數據;使用所述跟蹤數據來分析所述程序行為。
18. —種用於控制數據處理設備以執行如權利要求1所述方法的步驟的電腦程式。
19. 一種用於控制數據處理設備以執行如權利要求13所述方法的步驟的電腦程式。
20. —種用於編譯電腦程式的編譯器,所述電腦程式包括用於觸發由所述計算機 程序生成的跟蹤數據的輸出的多個跟蹤操作,所述編譯器包括變換電路,用於將所述電腦程式變換成形成所述電腦程式的中間版本的代碼; 分析電路,用於分析所述變換的代碼;其中所述變換電路響應由所述分析電路執行的分析,將所述跟蹤操作的至少一些替代為修改的跟蹤操作,並將所述代碼變換成適合於在數據處理系統上執行的代碼,以及生成將所 述修改的跟蹤操作關聯到它們替代的所述跟蹤操作的轉換數據。
21. —種用於監視程序行為的分析設備,包括輸入,用於接收跟蹤數據和轉換數據,所述跟蹤數據是響應由正在被監視的所述程序 執行的跟蹤操作而輸出的跟蹤數據,所述轉換數據包括對應於所述跟蹤操作的至少一些的 數據,所述跟蹤操作的所述至少一些是修改的跟蹤操作;識別電路,用於識別響應所述修改的跟蹤操作而生成的跟蹤數據;轉換電路,用於使用所述接收的轉換數據來轉換所述識別的跟蹤數據以生成轉換的跟 蹤數據,所述轉換的跟蹤數據表示由所述程序在它被修改前的版本中存在的跟蹤操作原本 將輸出的跟蹤數據。
全文摘要
本發明名稱為「通過修改跟蹤操作減少跟蹤開銷」。公開了一種編譯電腦程式以提高跟蹤效率的方法。電腦程式包括用於觸發由所述電腦程式生成的跟蹤數據的輸出的多個跟蹤操作,並且編譯的方法包括以下步驟將所述電腦程式變換成形成所述電腦程式的中間版本的代碼;分析所述變換的代碼;將所述跟蹤操作的至少一些替代為修改的跟蹤操作;將所述代碼變換成適合在數據處理系統上執行的代碼;以及生成將所述修改的跟蹤操作關聯到它們替代的所述跟蹤操作的轉換數據。
文檔編號G06F9/45GK101714098SQ20091017975
公開日2010年5月26日 申請日期2009年9月25日 優先權日2008年9月26日
發明者A·D·賴德, E·格林利-埃文斯, K·E·尼伯恩 申請人:Arm有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀