導航:首頁 > 源碼編譯 > 軟體編譯調試的環境

軟體編譯調試的環境

發布時間:2023-01-01 10:40:49

① 編輯和調試ASP程序需要什麼環境,軟體

運行環境 IIS

資料庫環境 access,sqlserver

編輯軟體 dreamwear,Editplus, UltraEdit32,記事本,都可以!

② 比較分析不同java程序調試環境的異同和優缺點。

充分利用 J2EE 調試工具--Java 開發環境的增強功能有助於調試J2EE 應用程序

我的第一個 Java 項目包括接管由我所在公司的一個部門編寫的一個門戶,該部門現在已經關閉了。當我凝視著運行門戶代碼的伺服器終端時,我看到一行接一行的調試代碼涌現在在屏幕上。進一步的研究之後,我發現 JavaServer Pages ( JSP )和 servlet 中到處都是 System.out.println (「 [Debug Statement] 」)。由於我對我接管的語言和代碼有些陌生,我堅持自己為終端編寫調試語句,因為我不知道調試 Java 代碼的其他方法。

然而,在漫長而乏味的調試過程中,我不斷失敗。我發現在將代碼提交給 QA 之前很難移除所有的調試語句。同樣,調試涉及到重新編譯、重新部署的代碼和在執行代碼時觀察終端也非常困難。為了查找代碼中斷的點,我時常在方法中的每一行代碼後加入 println 語句,在這種情況下,過程常常為找到的每一個故障重復。

最後,在我發現 Java 平台調試架構( Java Platform Debugger Architecture , JPDA )的時候,我擺脫了調試夢魘。 JPDA 是一套組成構建調試應用程序框架的 API 。幸運的是,我們大多數人不需要自己考慮創建調試應用程序的事,因為這些是與主要的 IDE 捆綁在一起提供的。調試在這些新的 IDE 中是一個相當簡單和輕松的過程。

您必須執行幾個步驟才可以使您的開發環境成為您可以進行調試的環境。如果您正在使用 Sun 的 Java Virtual Machine ( JVM )進行調試,您必須在命令行中指定啟動 J2EE 容器的時間,其中, JVM 已經以調試模式啟動。為了執行該操作,只需在 java 命令的後邊添加 -Xdebug 參數。我們隨後將研究一個命令行調試參數的示例。為了載入 Java Debug Wire Protocol ( JDWP ) 的 JPDA 參數實現,需要使用具有隨後指定的 JPDA 選項的 -Xrunjdwp 。該參數載入進行中的調試資料庫,而其子選項提供了調試伺服器如何與調試客戶端交互的細節。我們將研究一份 JPDA 子選項列表,該列表可以幫助設置正確的調試環境。

首先,指定傳輸選項。 transport 用於在調試程序和 VM 使用的進程之間通訊。 Win32 平台的 VM 提供了很多其他平台使用的共享內存傳輸和套接字傳輸。共享的內存傳輸(僅在 Win32 平台中受支持)要求調試應用程序和目標 VM 存放在相同的機器中。套接字傳輸使用標準的 TCP/IP 套接字來與調試信息通信。調試客戶端和調試伺服器可以位於使用套接字傳輸的相同或者不同的機器中。對於遠程調試 Enterprise JavaBeans ( EJB )和 servlet 來說,我們關注於使用套接字傳輸,因為它受所有平台支持:

transport=dt_socket

我們正在啟動的 VM 需要作為調試伺服器執行。如前所述,調試伺服器是運行以調試模式編譯的應用程序的 JVM (以後講述),並具有允許客戶端連接和 監聽 應用程序的開放套接字。為了使 VM 成為一台伺服器,需要提供伺服器選項,並將其值設置為 yes :
server=yes

接下來,我們需要指出調試伺服器將要使用的埠號,同時也是埠客戶端用來連接伺服器的埠號。只有知道正在運行伺服器的埠號的客戶端才可以建立連接,因為不存在標準的調試埠,也就是 HTTP 伺服器。任何未使用的埠都適用。在我們的情況中,我們使用了埠 4000 :

address=4000

避免混亂

您可以提供一個選項,僅在調試客戶端建立連接之後啟動 VM ( suspend=y )。我的 J2EE 容器具有一種服務,它可以在容器登錄之後立即啟動,而不用添加 suspend=y 到參數列表。我發現在我的那項服務啟動之前,啟動客戶端並連接到 VM 有些混亂 。使用該選項,我就可以啟動 VM 。當它暫停的時候,我打開 IDE ,設置中斷點,然後建立調試連接。一旦連接建立,容器繼續登錄,而我可以一步步啟動服務。

onthrow 選項推遲初始化 JDWP 資料庫,直到引發指定類的異常。例如,如果需要在引發異常(如 ServletException )時執行一些操作,您需要包含如下選項:

onthrow=
javax.servlet.ServletException

同樣, JDWP 資料庫初始化也可以推遲,直到引發異常但沒有捕獲時,該操作可以通過提供 onuncaught=y 選項指定。

啟動選項指出 VM 應當基於調試事件來啟動應用程序,該事件與 onthrow 或者 onuncaught 選項一起提供:

launch=/usr/home/mydir/debugapp

讓我們研究一些我經常使用的命令行調試參數的示例。在第一個示例中,我們將指導 VM 使用套接字傳輸。調用的 VM 是伺服器,它應當監聽埠 4000 。我們還指出 VM 應當在調試伺服器建立連接後才可以暫停:

-Xrunjdwp:transport=
dt_socket,server=y,address=4000,
suspend=n

第二套參數類似於前一個示例,不同的是其傳輸現在是一種共享內存傳輸(僅限於 Windows ):

-X runjdwp:transport=
dt_shmem,server=y,address=4000,
suspend=n

第三套參數會導致 VM 通過埠 4000 上的套接字連接附加到正在運行中的調試伺服器中,這將要求 VM 以調試模式運行在埠 4000 上的 SomeHost 中:

-X runjdwp:transport=
dt_socket,server=n,address=
SomeHost:4000, suspend=n

第四套參數將導致 VM 在開始的時候暫停。 VM 將等待建立與調試客戶端的連接,然後再繼續載入。 VM 使用埠 4000 來監聽客戶端,並使用套接字連接:

-X runjdwp:transport=
dt_socket,server=y,address=
4000, suspend=y

使用第五套參數,當引發 javax.management.InstanceNotFoundException 的時候, VM 將暫停,並啟動 c:\debug.bat 。 debug.bat 腳本可以啟動調試應用程序,該應用程序可以連接伺服器,並開始調試會話:

-Xrunjdwp:transport=
dt_socket,address=4000,server=
y,suspend=y,onthrow=
javax.management.
InstanceNotFoundException,
launch=c:\debug.bat

最後一套參數將在引發異常但沒有捕獲的時候執行 debug.bat 腳本:

-Xrunjdwp:transport=
dt_socket,address=4000,server=
y,suspend=n,onuncaught=
y,launch=c:\debug.bat

我們現在可以使用一些現有的通用 IDE 來說明如何調試 J2EE 。我們在示例中使用的 J2EE 容器是 JBoss 伺服器;然而,任何標準的 J2EE 容器都是可用的。 JBoss 伺服器從 bin 目錄中的 run.bat 文件啟動。 BAT 文件可以接受調試命令行自變數,並將它們發送給 JVM 。作為一名開發人員,我發現我很少需要啟動開發環境(除了調試模式),因此我將 run.bat 復制到一個名叫 debug.bat 的新文件中,並且在該文件中添加了調試參數。以下是 JBoss debug.bat 文件的內容:

rem Read all command line
rem arguments
set ARGS=
:loop
if [%1] == [] goto endloop
set ARGS=%ARGS% %1
shift
goto loop
:endloop
set JAVA_OPTS=
-Dprogram.name=run.bat
set JAVAC_JAR=
%JAVA_HOME%\lib\tools.jar
set RUNJAR=.\run.jar
set JBOSS_CLASSPATH=
%JBOSS_CLASSPATH%;%JAVAC_JAR%;
%RUNJAR%
rem Set the debug options here
set DEBUG_OPTS =
-Xdebug -Xnoagent
-Djava.compiler=
NONE -Xrunjdwp:transport=
dt_socket,address=
4000,server=y,suspend=n
Java %JAVA_OPTS% %DEBUG_OPTS%
-classpath "%JBOSS_CLASSPATH%"
org.jboss.Main %ARGS%

調試信息

在將 IDE 的調試程序連接到伺服器之前,將應用程序放在伺服器上。確保使用打開的調試信息對應用程序進行編譯。這樣做可以在已經編譯的類文件中提供行編號方式。如果您使用 Ant 來構建項目,請確保 javac 任務包含:
debug="on"

否則, IDE 應當包含在編譯期間打開調試的選項。

我提供了 從簡單的 DocBook 文件生成 PDF E-Books 的 J2EE 應用程序 。該應用程序由會話 bean 、 JSP 文件和 servlet 組成。會話 bean 可以列舉存儲在伺服器中的 DocBook 文檔和 XSL 樣式表文件。 JSP 使用會話 bean 來顯示書籍和 XSL 文件的列表,以下拉列表的方式顯示。用戶可以選擇他們要將哪些文件轉換成 PDF ,並指定要將哪些樣式表用於轉換。作為最後一個步驟, servlet 將 DocBook 文件轉換為 PDF ,並將 PDF 顯示在用戶的 Web 瀏覽器中。 Apache 的 FOP 資料庫用於轉換文檔(參閱 資源 )。

如果您想使用我構建的應用程序,請編輯 Ebook.properties 文件,並提供到您的機器中某個位置的有效路徑,該位置中存放 DocBook 和 XSL 文件。示例 DocBook 和 XSL 文件還可以下載。請將這些文件存放在您指定的位置中。

我已經提供了一份 Ant build.xml 文件來構建應用程序和將類封裝到企業歸檔文件( EAR )中。將 EAR 文件部署到 JBoss 的目錄中,並啟動具有以下參數的容器:

-Xrunjdwp:transport=
dt_socket,server=y,address=4000,
suspend=n

現在,我們已經准備好在調試模式中連接代碼

Intelli-J IDEA 調試

為了在Intelli-J中連接調試伺服器,只需點擊工具條中的Debug按鈕,打開調試配置界面即可。然後選擇Remote標記,來查看哪些調試配置可用。最初,沒有配置可以使用。點擊屏幕左上方的+按鈕來添加新的遠程調試配置。輸入主機名稱或者IP地址和要連接到的埠(參見圖1)。

圖 1. 遠程 Intelli-J 調試
圖中有一個 Intelli-J 中的連接到本地機器的遠程調試配置。

確保伺服器啟動時具有已經為 VM 進行設置的調試選項,然後點擊 Debug 按鈕。您應當連接到 VM ,並且您的調試屏幕中將出現在 Intelli-J 屏幕的底部。您可以通過點擊 Edit 窗口右邊空白區域來輕松的在 IDE 中設置中斷點。在中斷的地方會出現一個紅點。如果圓點中有一個 X ,則您指定的中斷點無效,或者伺服器中的代碼在編譯時沒有打開調試。如果圓點中有一個校驗標記,則說明您已經成功的連接到調試伺服器,和已經選擇了有效的中斷點位置。您可以進行調試了。如果您使用的是本文提供的 示例代碼 ,則請在 EJB 的 getDocBooks() 方法中設置中斷點。將 Web 瀏覽器指向 http://localhost:8080/DocBookToPDF/DocBook.jsp 。您的瀏覽器應當顯示為懸掛狀態,並且 Intelli-J 在設置中斷點的行中應當有一個藍條。恭喜,您正在調試 EJB ,您的 IDE 已經為進入代碼准備就緒(參見 圖 2)。

圖 2. Intelli-J 中斷點
Intelli-J 中斷點在其設置的地方以藍色突出顯示。圖中,中斷點已經設置,可以進行下一步驟。

們正在調試的方法查找在 DocBookToPDF.properties 文件中指定的目錄,並返回所有以 XML 為結尾的文件。該方法假設每一個文檔都是 DocBook 文件。在我們繼續之前,確保目錄具有有效的 DocBook 和 XSL 文件,以將文檔轉換為 PDF 。

完成進入代碼之後,注意 JSP 在下拉列表中顯示 DocBook 和 XSL 文件。下一步驟是調試 DocBookToPDFServlet servlet 。將中斷點放在 Edit 窗口左邊, processRequest() 方法中的某個位置。在 Web 瀏覽器中選擇 DocBook 文件和有效的 XSL 文件,然後點擊 Web 頁面中的 Generate Book 按鈕。 servlet 中的中斷點將呈現為藍色, servlet 代碼可以進入。

NetBeans/Forte 調試
在 NetBeans 中創建一個項目,該項目包含您需要調試的代碼。使用打開的調試選項編譯它,並像在前面 Intelli-J 部分中討論的那樣,將應用程序部署到伺服器中。我提供的 Ant build XML 文件演示了如何以調試模式編譯代碼。

為了開始調試,請選擇 Debug | Start Session | Attach 菜單選項。這時,將出現一個對話框,要求填寫連接信息。指定 JPDA 為調試程序, SocketAttach 為連接程序, localhost 為主機,埠 4000 為要連接到的器。點擊 OK 按鈕,您應當附加到 J2EE 容器的 VM (參見 圖 3 )中。 Debug 窗口將成為活動窗口,您現在可以使用相同的方式來設置中斷點,就像使用 Intelli-J 那樣。在 EJB 的 getDocBooks() 方法中設置中斷點,並將 Web 瀏覽器指向 http://localhost:8080/DocBookToPDF/DocBook.jsp 。 Web 頁面應當顯示為懸掛狀態,而 NetBeans 中的中斷點將被突出顯示(參見 圖 4 )。您可以在 IDE 中點擊調試工具欄中的 Step Over 和 Step Into 按鈕來進入 NetBeans 中的代碼。您還可以在界面左邊框架中設置觀察。

圖 3. 遠程 NetBeans 調試
圖中是 NetBeans 中本地機器的遠程調試配置

圖 4. NetBeans 中斷點
NetBeans 中斷點在活動狀態時以綠色突出顯示。圖中是已經設置的中斷點,已經准備好進行調試。

為了調試 servlet ,請在 processRequest() 方法中設置中斷點。當 JSP 在 Web 瀏覽器中完成載入,並在機器中顯示 DocBooks 和 XSL 文件的列表之後,選擇 DocBook 文件和 XSL 文件,然後點擊 Web 頁面中的 Generate Book 按鈕。在 NetBeans 中,中斷點將變為突出顯示狀態,您可以開始調試 servlet 代碼了。

Eclipse

為了在Eclipse中調試,需要在Java透視圖中創建一個項目。如果您正在使用DocBook-to-PDF代碼示例,則使用Ant build.xml編譯代碼,以編譯打開調試的類。突出顯示Java應用程序,並選擇Run | Debug菜單項。此時,將出現一個對話框。突出顯示Remote Java Application,然後點擊對話框左手邊底部的New按鈕。對話框項目的名稱應當為在Java透視圖中突出顯示的項目的名稱。對話框中連接部分的主機欄位應當是您需要連接到的伺服器,埠欄位中應當具有容器的VM正在使用的調試埠(參見圖5)

圖 5. 遠程 Eclipse 調試
圖中是 Eclipse 中本地機器的遠程調試配置。

接下來,點擊Debug按鈕。Eclipse將轉到Debug透視圖。為了調試代碼,請返回到Java透視圖中,並在編輯器中打開EJB文件或者servlet。雙擊EJB的getDocBooks()方法的左手邊的窗格來設置一個中斷點。有效的中斷點具有一個藍色的圓球,並且圓球中有一個校驗標記。如果中斷點中沒有校驗標記,雙擊該中斷點,然後嘗試不同的點。

接下來,將Web瀏覽器指向相同的JSP和servlet文件,就像前面NetBeans和Intelli-J中所描述的那樣。當設置中斷點時,中斷點所在的行將被突出顯示,您可以像使用其他IDE那樣來調試代碼(參見圖6)。

圖 6. Eclipse 中斷點
Eclipse 中有效的中斷點以藍色圓球和校驗標記指示。該圖說明了如何在 Eclipse IDE 中調試代碼。當前的調試位置以綠色突出顯示

使用具有流行 IDE 的 JPDA 資料庫應當會縮短開發時間,並且允許您創建包含極少缺陷的更優秀的代碼。如果您仍在代碼中添加 System.out.println() 語句,以發現程序失敗或者中斷的位置,那麼請住手!您是在浪費時間和金錢。 Java IDE 已經推出很長時間了,它可以提供功能強大的調試工具。您僅需要對啟動 VM 的方法做一些小小的改動,就可以輕松地調試 Java 應用程序了。

③ java的編譯環境是什麼

JDK(Java Development Kit,Java開發包,Java開發工具)是一個寫Java的applet和應用程序的程序開發環境。它由一個處於操作系統層之上的運行環境還有開發者編譯,調試和運行用Java語言寫的applet和應用程序所需的工具組成。

JDK(Java Development Kit)是Sun Microsystems針對Java開發員的產品。自從Java推出以來,JDK已經成為使用最廣泛的Java SDK(Software development kit)。

JDK包含的基本組件包括:

·javac – 編譯器,將源程序轉成位元組碼
·jar – 打包工具,將相關的類文件打包成一個文件
·javadoc – 文檔生成器,從源碼注釋中提取文檔
·jdb – debugger,查錯工具

JDK中還包括完整的JRE(Java Runtime Environment,Java運行環境),也被稱為private runtime。包括了用於產品環境的各種庫類,以及給開發員使用的補充庫,如國際化的庫、IDL庫。

JDK中還包括各種例子程序,用以展示Java API中的各部分。

從初學者角度來看,採用JDK開發Java程序能夠很快理解程序中各部分代碼之間的關系,有利於理解Java面向對象的設計思想。JDK的另一個顯著特點是隨著Java (J2EE、J2SE以及J2ME)版本的升級而升級。但它的缺點也是非常明顯的就是從事大規模企業級Java應用開發非常困難,不能進行復雜的Java軟體開發,也不利於團體協同開發。

JDK一般有三種版本:

SE(J2SE),standard edition,標准版,是我們通常用的一個版本
EE(J2EE),enterpsise edtion,企業版,使用這種JDK開發J2EE應用程序,
ME(J2ME),micro edtion,主要用於移動設備、嵌入式設備上的java應用程序

④ c程序語言中的編譯系統是什麼編譯環境又什麼什麼編譯程序又是什麼,之間有什麼關系

編譯環境:也就是你程序編譯時的環境,如windows環境、linux環境等
編譯系統:一般包括編譯程序,連接程序,調試程序等
編譯程序:一般指把源程序編譯成目標代碼的程序

⑤ c語言的運行環境和調試環境都是什麼有好的Microsoft Visual C++ 6.0 下載地址么

我完全不知道同志們在說什麼,居然有人在推薦turbo
c這種老掉牙的東西,win-tc都比turbo
c強
vc是用來對c和c++做編譯處理的,就是我們常說的編譯軟體,vc完全兼容c和c++所以在vc上面做c語言
絕對沒有問題,本人建議你使用vc因為vc具有編譯功能,對於代碼錯誤的更改會有很大的幫助
我這有vc6.0簡體中文版,我特意做了安裝圖解和工程的建立圖解,如果你需要的話我可以用郵箱發給你
順便說一下,tc在對輸入字元串的處理上存在一些問題,會導致正確的程序輸入錯誤的結果

⑥ c語言有哪幾種編譯環境

C語言的編譯環境可以使用VC 6.0,Turbo C,GCC,Visual Studio等。其中較好用的軟體為VC 6.0++。
Microsoft Visual C++ 6.0,簡稱VC6.0,是微軟推出的一款C++編譯器,將「高級語言」翻譯為「機器語言(低級語言)」的程序。Visual C++是一個功能強大的可視化軟體開發工具。自1993年Microsoft公司推出Visual C++1.0後,隨著其新版本的不斷問世,Visual C++已成為專業程序員進行軟體開發的首選工具。雖然微軟公司推出了 Visual C++.NET(Visual C++7.0),但它的應用的很大的局限性,只適用於Windows 2000、Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平台。Visual C++6.0不僅是一個C++ 編譯器,而且是一個基於Windows操作系統的可視化集成開發環境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調試器以及程序向導AppWizard、類向導Class Wizard等開發工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發環境。

⑦ IDE編程環境是什麼IDE是什麼

1、IDE編程環境就是說 把代碼的編寫,程序的調試,編譯,運行 以及其他的相關操作都集成在一起的 編程工具. 像studio,jcreator, netbeans 等大型的程序編寫工具都算是 ide. IDE(Integrated Development,集成開發環境) 2、集成開發環境(簡稱IDE)軟體是用於程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面工具。就是集成了代碼編寫功能、分析功能、編譯功能、debug功能等一體化的開發軟體套。所有具備這一特性的軟體或者軟體套(組)都可以叫做IDE。如微軟的Visual Studio系列,Borland的C++ Builder,Delphi系列等。該程序可以獨立運行,也可以和其它程序並用。例如,BASIC語言在微軟辦公軟體中可以使用,可以在微軟Word文檔中編寫WordBasic程序。IDE為用戶使用Visual Basic、Java和PowerBuilder等現代編程語言提供了方便。不同的技術體系有不同的IDE。比如visual studio.Net可以稱為C++、VB、C#等語言的集成開發環境,所以visual studio.Net可以叫做IDE。同樣,Borland的JBuilder也是一個IDE,它是Java的IDE。zend studio、editplus、ultra edit這些,每一個都具備基本的編碼、調試功能,所以每一個都可以稱作IDE。

記得採納啊

⑧ 什麼是編譯環境他的作用是什麼編譯環境跟運行平台有什麼不同

編譯環境是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。作用是通過代入預定義等程序段將源程序補充完整。

編譯環境跟運行平台區別為:工具不同、調試不同、硬體支持不同。

一、工具不同

1、編譯環境:編譯環境包含開發、調試和部署等工具。

2、運行平台:運行平台只包含運行指令和class實現的工具。

二、調試不同

1、編譯環境:編譯環境有調試代碼的功能,調試後可重新編譯執行。

2、運行平台:運行平台沒有調試代碼的功能。

三、硬體支持不同

1、編譯環境:編譯環境使用的是模擬設備,不需要硬體支持。

2、運行平台:運行平台需要硬體支持,在實際設備中運行。

⑨ win7 下可以使用什麼軟體進行匯編程序的編譯調試

1、匯編程序的開發,可以使用masm、radasm等集成開發環境,其中masm是微軟自家的匯編語言集成開發環境, masm是Microsoft Macro Assembler 的縮寫,是微軟公司最早為x86微處理器家族開發的匯編開發環境,擁有可視化的開發界面,使開發人員不必再使用DOS環境進行匯編的開發,編譯速度快,支持80x86匯編以及Win32Asm,現在有x64的版本。

2、調試匯編程序,可以使用windbg、ollydbg等動態調試器,其中Windbg是微軟自家的調試器,但是對於新手來說往往不容易上手,而且本身學習匯編語言需要更細致的看到指令執行的效果,就學習而言,還是Ollydbg更好用一些。所以像上面介紹的radasm,本身就一起打包了Ollydbg。使用Ollydbg也有缺點,即沒有x64版本,但是一般熟悉win32匯編的,估計x64匯編也很容易上手,如果必須調試64位的匯編程序,則還是上手Windbg。如下圖所示:

閱讀全文

與軟體編譯調試的環境相關的資料

熱點內容
程序員會壓抑 瀏覽:680
物探編程 瀏覽:300
vuepdf預覽 瀏覽:325
迷你世界出編程軟體了 瀏覽:673
res文件夾有哪些 瀏覽:142
交通信號燈單片機課程設計 瀏覽:826
如何測試流媒體伺服器的並發能力 瀏覽:161
溯源碼有分國家認證的嗎 瀏覽:218
如何通過app查詢產檢報告 瀏覽:944
拉結爾安卓手機怎麼用 瀏覽:695
驅動級進程代理源碼 瀏覽:782
androidshape畫線 瀏覽:511
程序員想辭職被拒絕 瀏覽:101
java面試邏輯 瀏覽:749
如何下載全英文app 瀏覽:724
js函數式編程指南 瀏覽:380
為什麼安卓手機相機啟動會卡 瀏覽:341
python中t是什麼意思 瀏覽:765
移動硬碟內存加密 瀏覽:407
單片機測角度 瀏覽:864