国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種并行程序的調試系統(tǒng)及方法

      文檔序號:6433110閱讀:241來源:國知局
      專利名稱:一種并行程序的調試系統(tǒng)及方法
      技術領域
      本發(fā)明涉及一種信息技術領域,尤其涉及一種并行程序的調試系統(tǒng)及方法。
      背景技術
      起初人們認為計算機性能的提高主要是由于生產(chǎn)出了更快更有效的處理器。這種觀點受到了并行處理概念的挑戰(zhàn)并行計算的根本意義是將兩臺或多臺計算機連接起來,共同解決一些復雜的計算問題。比如,隨著科學和信息技術的發(fā)展,許多領域如氣象預報、地震分析、信息檢索等都需要對大規(guī)模、海量數(shù)據(jù)進行快速高效的處理,促使計算從串行過度到并行。并行計算在軍事、科技、商業(yè)等領域應用也越來越廣泛,更多的用戶開始使用并行技術處理問題。并行處理技術的發(fā)展已經(jīng)有了 20多年的歷史,雖然說并行機硬件的發(fā)展算不上 是突飛猛進,但是也是相當迅速的。IBM、Intel、SUN、SGI等公司都致力于高性能并行機的研發(fā),并且在市場取得了不錯的業(yè)績。但是,相對于硬件體系結構的發(fā)展而言,軟件的發(fā)展卻嚴重滯后,影響了硬件效率的發(fā)揮,限制了并行機系統(tǒng)的廣泛應用。例如,作為并行程序的調試器,目前許多并行程序調試器還不具備平臺的可移植能力。雖然有些調試器對于平臺移植這一問題采取了有效的方法,那就是利用GDB作為底層的串行調試器,例如P2D2和Mantic。但它們也存在著缺陷,因為它們對GDB返回結果的輸出都由遠端一個服務器進行解析,本地不做此項工作,這也導致了它們不能更好的支持異構的環(huán)境。人們采用D⑶B和DDBG解決了異構的問題,但D⑶B和DDBG使用的⑶B接口是原來的GDB解釋器,在可擴展性、可靠性、可維護性和效率上都存在缺陷。另外的并行程序解決方案,如TotalView能夠自動捕獲MPI、PVM、HPF、OpenMP等并行程序進行調試,可以在本地調試多進程、多線程的程序,可以調試同構機群系統(tǒng)上的分布式系統(tǒng),支持動態(tài)調試,功能強大,是少有的多平臺商業(yè)調試器。但是它沒有使用現(xiàn)成的串行調試器,在不同平臺下要使用不同的版本,不支持異構環(huán)境,由于用戶界面和底層控制都運行在Unix/Linux平臺,不熟悉Unix/Linux平臺的用戶使用時會感覺相對困難。

      發(fā)明內容
      本發(fā)明的目的是針對現(xiàn)有技術存在的并行程序調試的不足,提供一種能夠實現(xiàn)跨平臺應用的并行程序的調試系統(tǒng)及方法,方便用戶編輯調試代碼、設置并行程序運行斷點,并能通過遠程調用的方式編譯、運行、調試并行程序,以及查看性能分析結果,具有很好的移植性和可擴展性。為了達到上述發(fā)明目的,本發(fā)明提出了一種并行程序的調試系統(tǒng),所述系統(tǒng)是通過以下的技術方案實現(xiàn)的一種并行程序的調試系統(tǒng),所述系統(tǒng)包括前端集成調試模塊,用來給用戶提供調試窗口,對待調試的并行程序進行調試操作;
      后臺調試管理模塊,用來根據(jù)前端集成調試模塊發(fā)來的調試命令,通過源代碼插樁,并對插樁后的并行程序進行編譯運行,并將運行的結果反饋給前端集成調試模塊。進ー步優(yōu)選地,所述前端集成調試模塊具體包括工程管理子模塊,用來提供工程管理功能,所述工程管理功能包括支持用戶新建、刪除新的工程,在工程中添加、刪除文件;文件管理子模塊,用來提供文件管理功能,所述文件管理功能包括源代碼文件的新建、打開、保存或關閉;代碼編輯管理子模塊,用來提供代碼編輯管理功能,所述代碼編輯管理功能包括允許用戶編輯代碼、代碼板旁邊即時顯示行號、支持基本的編程語言關鍵字高亮顯示,支持區(qū)分大小寫的查找或替換;界面子模塊,用來根據(jù)用戶需求或系統(tǒng)推薦,設置斷點或性能觀測點。進ー步優(yōu)選地,所述界面子模塊還包括一對話框,用來設置各種可能的條件值對斷點進行控制。進ー步優(yōu)選地,所述后臺調試管理模塊包括插樁模塊,用來按照實際需要對源代碼進行訪問和修改,加入所需要的功能代碼,來捕獲程序當前的狀態(tài)或增加外部代碼運行過程的控制。進ー步優(yōu)選地,所述插樁模塊具體包括斷點管理插樁子模塊,用來使得經(jīng)插樁后的代碼在執(zhí)行過程中與前端集成調試模塊進行通信,模擬實現(xiàn)斷點效果;變量觀測插樁子模塊,用來使得經(jīng)插樁的代碼與前端集成調試模塊之間進行通信,在斷點處傳輸有效變量信息并顯示給用戶;性能分析插樁子模塊,用來使得經(jīng)插樁的代碼在執(zhí)行過程中與前端集成調試模塊之間進行通信傳遞并行程序的性能參數(shù),并在前端集成調試模塊中實現(xiàn)性能觀測與記錄。進ー步優(yōu)選地,所述實際需求通過插樁需求描述文件的方式傳遞給源代碼插樁模塊,插樁模塊根據(jù)插樁需求描述文件給出的信息,調用相應的接ロ,對待調試的程序源代碼進行自動插樁。進ー步優(yōu)選地,所述插樁需求描述文件包括斷點管理需求描述文件、變量觀測需求描述文件和性能分析需求描述文件。進ー步優(yōu)選地,所述斷點管理需求描述文件的內容主要來自于用戶通過前端集成調試模塊的界面子模塊設置的各種類型靜態(tài)斷點以及條件斷點。進ー步優(yōu)選地,所述變量觀測和性能分析需求描述文件的內容主要來自于各個變量的作用域、類型等信息以及待調試的并行程序的各指導語句所在位置的信息。進ー步優(yōu)選地,所述變量觀測和性能分析需求描述文件的內容根據(jù)在插樁之前對待調試的程序的源代碼進行詞法和語法分析,構造出的相應的語法樹生成。進ー步優(yōu)選地,所述后臺調試管理模塊還包括語法分析模塊,用來根據(jù)用戶所編寫的規(guī)則及每條規(guī)則所對應的處理語句生成用于分析和處理待調試的程序的解析程序,所述解析程序根據(jù)編寫指定的規(guī)則對待調試的程序進行詞法和語法分析,并在執(zhí)行每條規(guī)則所對應的處理語句構建語法樹。進ー步優(yōu)選地,所述前端集成調試模塊與后臺調試管理模塊通過Socket結構體進行通信。為了實現(xiàn)前述發(fā)明目的,本發(fā)明實施例還提出了一種并行程序的調試方法,所述并行程序的調試方法是通過以下技術方案實現(xiàn)的一種并行程序的調試方法,其特征在于,所述方法包括通過前端調試環(huán)境的調試窗口,對待調試的并行程序進行調試操作;根據(jù)前端集成調試環(huán)境發(fā)來的調試命令,通過源代碼插樁,并對插樁后的并行程序進行編譯運行,將運行的結果反饋給前端集成調試環(huán)境。進一步優(yōu)選地,所述調試操作具體包括工程管理,所述工程管理功能包括支持用戶新建、刪除新的工程,在工程中添加、 刪除文件;文件管理,所述文件管理功能包括源代碼文件的新建、打開、保存或關閉;代碼編輯管理,所述代碼編輯管理功能包括允許用戶編輯代碼、代碼板旁邊即時顯示行號、支持基本的編程語言關鍵字高亮顯示,支持區(qū)分大小寫的查找或替換;根據(jù)用戶需求或系統(tǒng)推薦,設置斷點或性能觀測點。進一步優(yōu)選地,所述方法還包括通過一對話框,來設置各種可能的條件值對斷點進行控制。進一步優(yōu)選地,所述通過源代碼插樁,并對插樁后的并行程序進行編譯運行,將運行的結果反饋給前端集成調試環(huán)境具體包括按照實際需要對源代碼進行訪問和修改,加入所需要的功能代碼,來捕獲程序當前的狀態(tài)或增加外部代碼運行過程的控制,并對插樁后的并行程序進行編譯運行,將運行的結果反饋給前端集成調試環(huán)境。進一步優(yōu)選地,所述源代碼插樁具體包括斷點管理,使得經(jīng)插樁后的代碼在執(zhí)行過程中與前端集成調試環(huán)境進行通信,模擬實現(xiàn)斷點效果;變量觀測插樁,使得經(jīng)插樁的代碼與前端集成調試環(huán)境之間進行通信,在斷點處傳輸有效變量信息并顯示給用戶;性能分析插樁,使得經(jīng)插樁的代碼在執(zhí)行過程中與前端集成調試環(huán)境之間進行通信傳遞并行程序的性能參數(shù),并在前端集成調試環(huán)境中實現(xiàn)性能觀測與記錄。進一步優(yōu)選地,所述實際需求通過插樁需求描述文件的方式傳遞給源代碼插樁模塊,源代碼插樁模塊根據(jù)插樁需求描述文件給出的信息,調用相應的接口,對待調試的程序源代碼進行自動插樁。進一步優(yōu)選地,所述插樁需求描述文件包括斷點管理需求描述文件、變量觀測需求描述文件或性能分析需求描述文件。進一步優(yōu)選地,所述斷點管理需求描述文件的內容主要來自于用戶通過前端集成調試模塊的界面子模塊設置的各種類型靜態(tài)斷點以及條件斷點。進一步優(yōu)選地,所述變量觀測和性能分析需求描述文件的內容主要來自于各個變量的作用域、類型等信息以及待調試的并行程序的各指導語句所在位置的信息。進一步優(yōu)選地,所述變量觀測和性能分析需求描述文件的內容根據(jù)在插樁之前對待調試的程序的源代碼進行詞法和語法分析,構造出的相應的語法樹生成。
      進一步優(yōu)選地,所述方法還包括根據(jù)用戶所編寫的規(guī)則及每條規(guī)則所對應的處理語句生成用于分析和處理待調試的程序的解析程序,所述解析程序根據(jù)編寫指定的規(guī)則對待調試的程序進行詞法和語法分析,并在執(zhí)行每條規(guī)則所對應的處理語句構建語法樹。與現(xiàn)有技術相比,本發(fā)明實施例提供的并行程序的遠程調試系統(tǒng)和方法,不依賴于操作系統(tǒng)和硬件環(huán)境,使得不熟悉Linux操作系統(tǒng)甚至沒有裝Linux操作系統(tǒng)的用戶也能使用這款調試工具在遠程多核計算機上進行并行程序的調試分析,有利于資源的整合;另外,基于語法樹的源代碼插樁,有針對性的構造語法樹,得到進行斷點管理、變量觀測和性能分析插樁所需的信息,并利用插樁后的語法樹進行反構得到插樁后代碼;同時,利用編譯運行經(jīng)插樁后源代碼的方法實現(xiàn)程序調試過程中的斷點管理、變量觀測和性能分析,并為并行程序的每一個線程建立一個socket連接于前端集成調試環(huán)境進行交互,不同于傳統(tǒng)的利用GDB提供接口的策略,使得該工具在可擴展性、可維護性和效率等方面得到很大提聞。


      通過下面結合附圖對其示例性實施例進行的描述,本發(fā)明上述特征和優(yōu)點將會變得更加清楚和容易理解。圖I為本發(fā)明實施例I 一種并行程序的調試系統(tǒng)運行示意圖;圖2為本發(fā)明實施例2另一種并行程序的調試系統(tǒng)的組成示意圖;圖3為本發(fā)明實施例3又一種并行程序的調試系統(tǒng)的組成示意圖;圖4為本發(fā)明實施例4 一種并行程序的調試系統(tǒng)總體運行示意圖;圖5為本發(fā)明實施例5后臺調試管理模塊根據(jù)語法樹進行插樁的示意圖;圖6為本發(fā)明實施例6 —種并行程序的調試方法的流程圖。
      具體實施例方式下面結合附圖對本發(fā)明作進一步詳細說明。如圖I所示,為本發(fā)明實施例I 一種并行程序的調試系統(tǒng)的運行示意圖,所述系統(tǒng)包括前端集成調試模塊和后臺調試管理模塊,一優(yōu)選的實施方式包括,所述前端集成調試模塊和后臺調試管理模塊分別運行于兩個不同的計算平臺上,使得幫助用戶實現(xiàn)對并行程序的遠程調試。如圖2所示,本發(fā)明實施例2的前端集成調試模塊用來提供工程管理、文件管理、編輯程序代碼、語法元素高亮顯示、設置/刪除程序斷點、生成插樁任務描述文件、啟動對調試程序的遠程編譯及運行、變量信息的觀測顯示及性能分析結果的可視化顯示等功能。本發(fā)明實施例的調試系統(tǒng)的前端集成模塊提供的基本的工程管理、文件管理、編輯程序代碼功能,其中,工程管理功能包括支持用戶新建、刪除新的工程,在工程中添加、刪除文件等;文件管理功能包括源代碼文件的新建、打開、保存、關閉等,編輯程序代碼功能包括允許用戶編輯代碼,代碼板旁邊即時顯示行號,支持基本的C語言關鍵字高亮顯示,支持區(qū)分大小寫的查找/替換等。因此,用戶除了通過前端集成模塊編輯程序代碼,還可以點擊相應的按鈕啟動遠程編譯、運行并行程序。同時用戶可以在前端集成調試模塊的界面子模塊上根據(jù)自身需求和系統(tǒng)推薦,設置斷點及性能觀測點,還可以通過系統(tǒng)提供的對話框設置各種可能的條件值(條件表達式和語句執(zhí)行次數(shù))對斷點進行控制。同吋,當進入斷點后,待調試的并行程序在斷點處產(chǎn)生的斷點和變量信息經(jīng)socket通信傳遞給前端集成調試模塊后通過界面子模塊進行可視化顯示,其中包括對于進入斷點的當前語句行的高亮提醒,有效變量的變量名、變量類型、當前值的分組顯示,以及性能分析結果的條形圖顯示,顯示值ket范文件、啟動對待調試程序的遠程編譯及運行、變量名稱。所述的界面子模塊,其界面簡潔,功能分類清晰,作為ー個并行程序的遠程調試前臺集成環(huán)境具有體積小、功能全的特點。如圖3所示,插樁模塊,作為源代碼級自動插樁,用于有效定位和解決軟件疑難問題,實現(xiàn)遠程調試,保證軟件產(chǎn)品的質量,按照實際需要對源代碼進行訪問和修改,加入所需要的功能代碼,來捕獲程序當前的狀態(tài)或增加外部代碼運行過程的控制,加入代碼后再重新編譯、鏈接并加以運行,以獲得預期功能和執(zhí)行效果。本發(fā)明實施例的調試系統(tǒng)的源代碼級插樁主要為了實現(xiàn)并行程序遠程調試中的 斷點管理、變量觀測和性能分析功能,通過重新編譯運行插樁后的代碼來管理用戶設立的斷點、交互斷點處的有效變量以及實現(xiàn)性能數(shù)據(jù)的分析和可視化顯示等。為了使插樁具有較好的靈活性和可擴展性,同時保證數(shù)據(jù)傳輸?shù)姆奖?,本發(fā)明實施例的并行程序遠程調試系統(tǒng)采用生成插樁需求描述文件的方式,根據(jù)插樁需求描述文件給出的信息,調用相應的接ロ,對待調試的程序源代碼進行自動插樁。根據(jù)插樁實現(xiàn)的功能,插樁需求描述文件也分為斷點管理、變量觀測和性能分析三部分,其中斷點管理需求描述文件的內容主要來自于用戶通過前端集成調試模塊的界面子模塊設置的各種類型靜態(tài)斷點以及條件斷點,但是變量觀測和性能分析需求描述文件則需要各個變量的作用域、類型等信息以及OpenMP并行程序的各指導語句所在位置。這便需要在插樁之前對待調試的程序的源代碼進行詞法和語法分析,構造出相應的語法樹。如圖5所示,所述語法樹主要采用基于LEX/YACC,LEX和YACC工具分別具有詞法和語法規(guī)則,并為每條規(guī)則配置相應的處理語句,用來分析基本C語言和OpenMP語法成分。LEX和YACC工具根據(jù)用戶所編寫的規(guī)則及每條規(guī)則所對應的處理語句生成用于分析和處理待調試的程序的解析程序,該程序根據(jù)編寫指定的規(guī)則對待調試的程序進行詞法和語法分析,并在執(zhí)行每條規(guī)則所對應的處理語句時構建語法樹。遍歷這棵語法樹可以得到待調試程序中的變量信息及OpenMp指導語句相關信息,再結合用戶通過前端集成調試模塊給出的調試需求,即可生成插樁需求文件輔助完成插樁,插樁后產(chǎn)生新的源代碼,經(jīng)編譯之后再次加以執(zhí)行即可得到調試所需信息。如圖3所示,本發(fā)明實施例2的插樁模塊包括(I)斷點管理插樁子模塊斷點管理插樁子模塊用于使得經(jīng)插樁后的代碼在執(zhí)行過程中可以與前端集成調試模塊進行通信,模擬實現(xiàn)斷點效果。本發(fā)明實施例2通過在用戶編寫的源代碼中插入相應的斷點樁函數(shù)調用語句來實現(xiàn)斷點管理功能,并將各個斷點的信息放入ー個鏈表結構中。每當執(zhí)行到斷點樁函數(shù)吋,該函數(shù)便會結合自身參數(shù)和鏈表中的斷點信息判斷是否觸發(fā)當前斷點,如果需要觸發(fā),則為相應的線程建立ー個與前端集成調試模塊的通信連接。
      本發(fā)明實施例3作為一個優(yōu)選的實施例,其斷點處理函數(shù)的定義和斷點鏈表結構的定義都包含在一個頭文件中,只需在源代碼中包含這個頭文件即可調用。斷點處理函數(shù)可以提供觸發(fā)條件檢查、變量有效值傳輸、等待用戶控制等功能。詳細信息如下
      void breakpoint ( int num, int lineno, int type, int hittime)num :斷點號,作為區(qū)分各個斷點的唯一標識;
      lineno:斷點所處行的原始行號,方便用戶在前端集成調試環(huán)境中定位當前斷占.type :斷點類型,枚舉類型,具體定義如下
      typedef enum {
      normal,//靜態(tài)斷點
      conditional, //條件斷點
      hittimej, //命中次數(shù)小于所設數(shù)時觸發(fā)的斷點 hittimeje, //命中次數(shù)小于等于所設數(shù)時觸發(fā)的斷點 hittime 一 e //命中次數(shù)等于所設數(shù)時觸發(fā)的斷點 hittime_he, //命中次數(shù)大于等于所設數(shù)時觸發(fā)的斷點 hittime 一 h //命中次數(shù)大于所設數(shù)時觸發(fā)的斷點 } BpType;_hittime :斷點條件命中次數(shù),當type為normal和conditional時,該參數(shù)沒有意義,當斷點觸發(fā)條件根據(jù)命中次數(shù)決定時,該參數(shù)傳入用戶通過前端集成調試模塊設置的次數(shù),以形成觸發(fā)條件。除了根據(jù)命中次數(shù)決定的條件斷點,本發(fā)明實施例還允許用戶設置帶有條件表達式的斷點,當斷點的type為normal時,用戶可以通過前端集成調試模塊給出條件表達式,此時本發(fā)明實施例4可以用一條帶有此表達式的if語句判斷條件是否滿足,斷點是否激發(fā)。(2)變量觀測插樁子模塊變量觀測插樁子模塊用來使得經(jīng)插樁的代碼可以與前端集成調試模塊之間進行通信,在斷點處傳輸有效變量信息并顯示給用戶。本發(fā)明實施例5采用在用戶編寫的源代碼中插入相應的變量上報函數(shù)實現(xiàn)對變量定義以及賦值等動作的監(jiān)控,即時捕捉變量變化信息。同時構造一個變量鏈表結構儲存存放所有的變量信息,具體定義如下
      權利要求
      1.ー種并行程序的調試系統(tǒng),其特征在于,所述系統(tǒng)包括 前端集成調試模塊,用來給用戶提供調試窗ロ,對待調試的并行程序進行調試操作; 后臺調試管理模塊,用來根據(jù)前端集成調試模塊發(fā)來的調試命令,通過源代碼插樁,并對插樁后的并行程序進行編譯運行,并將運行的結果反饋給前端集成調試模塊。
      2.根據(jù)權利要求I所述的系統(tǒng),其特征在于,所述前端集成調試模塊具體包括 工程管理子模塊,用來提供工程管理功能,所述工程管理功能包括支持用戶新建、刪除新的工程,在工程中添加、刪除文件; 文件管理子模塊,用來提供文件管理功能,所述文件管理功能包括源代碼文件的新建、打開、保存或關閉; 代碼編輯管理子模塊,用來提供代碼編輯管理功能,所述代碼編輯管理功能包括允許用戶編輯代碼、代碼板旁邊即時顯示行號、支持基本的編程語言關鍵字高亮顯示,支持區(qū)分大小寫的查找或替換; 界面子模塊,用來根據(jù)用戶需求或系統(tǒng)推薦,設置斷點或性能觀測點。
      3.根據(jù)權利要求2所述的系統(tǒng),其特征在于,所述界面子模塊還包括一對話框,用來設置各種可能的條件值對斷點進行控制。
      4.根據(jù)權利要求3所述的系統(tǒng),其特征在于,所述后臺調試管理模塊包括 插樁模塊,用來按照實際需要對源代碼進行訪問和修改,加入所需要的功能代碼,來捕獲程序當前的狀態(tài)或增加外部代碼運行過程的控制。
      5.根據(jù)權利要求4所述的系統(tǒng),其特征在于,所述插樁模塊具體包括 斷點管理插樁子模塊,用來使得經(jīng)插樁后的代碼在執(zhí)行過程中與前端集成調試模塊進行通信,模擬實現(xiàn)斷點效果; 變量觀測插樁子模塊,用來使得經(jīng)插樁的代碼與前端集成調試模塊之間進行通信,在斷點處傳輸有效變量信息并顯示給用戶; 性能分析插樁子模塊,用來使得經(jīng)插樁的代碼在執(zhí)行過程中與前端集成調試模塊之間進行通信傳遞并行程序的性能參數(shù),并在前端集成調試模塊中實現(xiàn)性能觀測與記錄。
      6.根據(jù)權利要求5所述的系統(tǒng),其特征在于,所述實際需求通過插樁需求描述文件的方式傳遞給源代碼插樁模塊,源代碼插樁模塊根據(jù)插樁需求描述文件給出的信息,調用相應的接ロ,對待調試的程序源代碼進行自動插樁。
      7.根據(jù)權利要求6所述的系統(tǒng),其特征在干,所述插樁需求描述文件包括斷點管理需求描述文件、變量觀測需求描述文件和性能分析需求描述文件。
      8.根據(jù)權利要求7所述的系統(tǒng),其特征在于,所述斷點管理需求描述文件的內容主要來自于用戶通過前端集成調試模塊的界面子模塊設置的各種類型靜態(tài)斷點以及條件斷點。
      9.根據(jù)權利要求7所述的系統(tǒng),其特征在干,所述變量觀測和性能分析需求描述文件的內容主要來自于各個變量的作用域、類型等信息以及待調試的并行程序的各指導語句所在位置的信息。
      10.根據(jù)權利要求9所述的系統(tǒng),其特征在于,所述變量觀測和性能分析需求描述文件的內容根據(jù)在插樁之前對待調試的程序的源代碼進行詞法和語法分析,構造出的相應的語法樹生成。
      11.根據(jù)權利要求10所述的系統(tǒng),其特征在于,所述后臺調試管理模塊還包括語法分析模塊,用來根據(jù)用戶所編寫的規(guī)則及每條規(guī)則所對應的處理語句生成用于分析和處理待調試的程序的解析程序,所述解析程序根據(jù)編寫指定的規(guī)則對待調試的程序進行詞法和語法分析,并在執(zhí)行每條規(guī)則所對應的處理語句構建語法樹。
      12.根據(jù)權利要求I至11任意一項所述的系統(tǒng),其特征在于,所述前端集成調試模塊與后臺調試管理模塊通過Socket結構體進行通信。
      13.一種并行程序的調試方法,其特征在于,所述方法包括 通過前端調試環(huán)境的調試窗口,對待調試的并行程序進行調試操作; 根據(jù)前端集成調試環(huán)境發(fā)來的調試命令,通過源代碼插樁,并對插樁后的并行程序進行編譯運行,將運行的結果反饋給前端集成調試環(huán)境。
      14.根據(jù)權利要求13所述的方法,其特征在于,所述調試操作具體包括 工程管理,所述工程管理功能包括支持用戶新建、刪除新的工程,在工程中添加、刪除文件; 文件管理,所述文件管理功能包括源代碼文件的新建、打開、保存或關閉; 代碼編輯管理,所述代碼編輯管理功能包括允許用戶編輯代碼、代碼板旁邊即時顯示行號、支持基本的編程語言關鍵字高亮顯示,支持區(qū)分大小寫的查找或替換; 根據(jù)用戶需求或系統(tǒng)推薦,設置斷點或性能觀測點。
      15.根據(jù)權利要求14所述的方法,其特征在于,所述方法還包括通過一對話框,來設置各種可能的條件值對斷點進行控制。
      16.根據(jù)權利要求15所述的方法,其特征在于,所述通過源代碼插樁,并對插樁后的并行程序進行編譯運行,將運行的結果反饋給前端集成調試環(huán)境具體包括 按照實際需要對源代碼進行訪問和修改,加入所需要的功能代碼,來捕獲程序當前的狀態(tài)或增加外部代碼運行過程的控制,并對插樁后的并行程序進行編譯運行,將運行的結果反饋給前端集成調試環(huán)境。
      17.根據(jù)權利要求16所述的方法,其特征在于,所述源代碼插樁具體包括 斷點管理,使得經(jīng)插樁后的代碼在執(zhí)行過程中與前端集成調試環(huán)境進行通信,模擬實現(xiàn)斷點效果; 變量觀測插樁,使得經(jīng)插樁的代碼與前端集成調試環(huán)境之間進行通信,在斷點處傳輸有效變量信息并顯示給用戶; 性能分析插樁,使得經(jīng)插樁的代碼在執(zhí)行過程中與前端集成調試環(huán)境之間進行通信傳遞并行程序的性能參數(shù),并在前端集成調試環(huán)境中實現(xiàn)性能觀測與記錄。
      18.根據(jù)權利要求17所述的方法,其特征在于,所述實際需求通過插樁需求描述文件的方式傳遞給源代碼插樁模塊,源代碼插樁模塊根據(jù)插樁需求描述文件給出的信息,調用相應的接口,對待調試的程序源代碼進行自動插樁。
      19.根據(jù)權利要求18所述的方法,其特征在于,所述插樁需求描述文件包括斷點管理需求描述文件、變量觀測需求描述文件或性能分析需求描述文件。
      20.根據(jù)權利要求19所述的方法,其特征在于,所述斷點管理需求描述文件的內容主要來自于用戶通過前端集成調試模塊的界面子模塊設置的各種類型靜態(tài)斷點以及條件斷點。
      21.根據(jù)權利要求20所述的方法,其特征在于,所述變量觀測和性能分析需求描述文件的內容主要來自于各個變量的作用域、類型等信息以及待調試的并行程序的各指導語句所在位置的信息。
      22.根據(jù)權利要求21所述的方法,其特征在于,所述變量觀測和性能分析需求描述文件的內容根據(jù)在插樁之前對待調試的程序的源代碼進行詞法和語法分析,構造出的相應的語法樹生成。
      23.根據(jù)權利要求22所述的方法,其特征在于,所述方法還包括根據(jù)用戶所編寫的規(guī)則及每條規(guī)則所對應的處理語句生成用于分析和處理待調試的程序的解析程序,所述解析程序根據(jù)編寫指定的規(guī)則對待調試的程序進行詞法和語法分析,并在執(zhí)行每條規(guī)則所對應的處理語句構建語法樹。
      全文摘要
      本發(fā)明公開了一種并行程序的調試系統(tǒng),用于信息技術領域,以針對現(xiàn)有技術存在的并行程序調試的不足,提供一種能夠實現(xiàn)跨平臺應用的并行程序的調試系統(tǒng)及方法,具體包括前端集成調試模塊,用來給用戶提供調試窗口,對待調試的并行程序進行調試操作;后臺調試管理模塊,用來根據(jù)前端集成調試模塊發(fā)來的調試命令,通過源代碼插樁,并對插樁后的并行程序進行編譯運行,并將運行的結果反饋給前端集成調試模塊。本發(fā)明實施例的并行程序調試方法及系統(tǒng)方便用戶編輯調試代碼、設置并行程序運行斷點,并能通過遠程調用的方式編譯、運行、調試并行程序,以及查看性能分析結果,具有很好的移植性和可擴展性。
      文檔編號G06F11/36GK102789413SQ20111027103
      公開日2012年11月21日 申請日期2011年9月14日 優(yōu)先權日2011年5月23日
      發(fā)明者孫海平, 張棟良, 柴華, 石琴琴, 蔣昌俊, 閆春鋼, 陳閎中 申請人:同濟大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1