导航:首页 > 源码编译 > 软件编译调试的环境

软件编译调试的环境

发布时间: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。如下图所示:

阅读全文

与软件编译调试的环境相关的资料

热点内容
溯源码有分国家认证的吗 浏览:212
如何通过app查询产检报告 浏览:940
拉结尔安卓手机怎么用 浏览:695
驱动级进程代理源码 浏览:782
androidshape画线 浏览:510
程序员想辞职被拒绝 浏览:101
java面试逻辑 浏览:749
如何下载全英文app 浏览:724
js函数式编程指南 浏览:380
为什么安卓手机相机启动会卡 浏览:341
python中t是什么意思 浏览:765
移动硬盘内存加密 浏览:407
单片机测角度 浏览:864
URL服务器地址怎么填 浏览:438
压缩饼干会导致血糖高吗 浏览:569
cad中xc命令怎么用 浏览:424
戴尔服务器怎么看网卡接口 浏览:823
盐铁论pdf 浏览:424
最短路径的生成算法可用 浏览:457
苹果备忘录怎么不能加密了 浏览:626