服务器程序DEBUG

服务器端设定

Tomcat

默认我们启动Tomcat是使用下边的命令

./catalina.sh start 

如果想DEBUG的话,只需要加一个参数打开JPDA(Java Platform Debugger Architecture)就可以了

./catalina.sh jpda start

注:默认的监听端口是8000,如果想修改这个端口的话,可以修改环境变量JPDAADDRESS。 如果我们的服务器是通过daemon.sh启动的tomcat话,貌似没有找到默认打开JPDA的方法,我们可以环境变量CATALINAOPTS达到同样的效果

export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8088,server=y,suspend=n"

普通JAVA程序

我们可以在Java命令中加入如下参数

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

本地设定

在eclipse的“Run”菜单下选择“Debug...”菜单,在弹出的对话框左边的菜单中选择“Remote Java Application”菜单,右键点击,选择“New”,这个时候弹出一个需要填写参数的对话框。在弹出的框中,定义项目名称,选择要断点调试的项目,Connect type(默认Standard (Socket Attach)),定义我们的工程放在哪里,填写他的ip以及提供的服务端口号

参数说明

Xdebug

启用调试特性。

-Xrunjdwp:<sub-options>

在目标 VM 中加载 JDWP(Java 调试网络协议Java Debug Wire Protocol) 实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。下面介绍一些特定的子选项。 注,从 Java V5 开始,您可以使用 -agentlib:jdwp 选项,而不是 -Xdebug 和 -Xrunjdwp。但如果连接到 V5 以前的 VM,只能选择 -Xdebug 和 -Xrunjdwp。下面简单描述 -Xrunjdwp 子选项。

transport

这里通常使用套接字传输。但是在 Windows 平台上也可以使用共享内存传输。

server

如果值为 y,目标应用程序监听将要连接的调试器应用程序(VM端作为服务器)。否则,它将连接到特定地址上的调试器应用程序(eclipse端作为服务器)。

address

这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。

suspend

如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。

参考文献

1.http://www.ibm.com/developerworks/cn/java/j-lo-jpda1/

2.http://jiangzhengjun.iteye.com/blog/683603

服务器程序DEBUG,布布扣,bubuko.com

时间: 2024-12-14 18:42:02

服务器程序DEBUG的相关文章

Linux服务器程序规范

除了网络通信外,服务器程序还必须考虑许多其他细节问题,零碎,但基本上时模板式的. ---引 Linux服务器程序一般以后台形式运行.后台程序又称守护进程.它没有控制终端,因而也不会意外接受用户输入.守护进程的父进程一般是init进程(pid=1). Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有的高级服务器可以输出日志到专门的UDP服务器.大部分后台进程都在/var/log下有自己的日志目录. Linux服务器程序一般以某个专门的非root身份运行.mysqld, httpd

Python实现简单的http服务器程序

主要的需求是这样的,需要调用服务器端的程序获取GPU服务器的信息并且返回给前端显示出来,那么就需要完成一个服务器端的程序,获取服务器的数据之后将数据返回(以JSON格式). 效果如下图: 页面没有内容是因为服务程序还没有启动.下面完成服务器程序: #!/usr/bin/python from bottle import route,run,template import os from bottle import get,post,request import re gpu_info_dict

服务器程序注意事项

1. 在服务器程序时,很容易出现内存泄露.以及内存溢出等问题. 出现这些问题往往会导致程序无法正常运行,比如异常退出.阻塞.然而,在发生这些错误的时候往往会令人很困惑,因为这些错误很难被发现.解决这些问题往往会耗费大量的时间.因而保持良好的代码习惯对一个程序的健壮性具有重要的意义,也是一个优秀的程序员所应该具备的素质. 2. 服务端程序往往是部署在Unix等服务器之上的,并且需要长久的运行. 在这种情况下,很多时候对程序的调试都是比较不方便的.所以,保留日志等将为我们的后期的Debug提供很大的

c++ 服务器程序bug dump

调试服务器程序时最怕遇到需要运行10天半个月才遇到一次的bug,这种bug很难还原现场,同时还要时刻注意服务器是否挂掉. 本文给出一个解决方法可以极大的提高调试效率. 使用本文方法可以在断言失败时自动dump,可用于还原bug环境进行调试.另外崩溃时也会自动记录crash dump. 断言函数 bool xassert(bool r){ if(!r) __asm int 3 return r; } 最终异常处理函数,遇到这里的话说明程序只能挂掉了,写crash dump LONG WINAPI

《用Java写一个通用的服务器程序》02 监听器

在一个服务器程序中,监听器的作用类似于公司前台,起引导作用,因此监听器花在每个新连接上的时间应该尽可能短,这样才能保证最快响应. 回到编程本身来说: 1. 监听器最好由单独的线程运行 2. 监听器在接到新的连接之后,处理连接的方法需要尽快返回 在Java Push Framework中,因为需要同时监听普通客户端和服务器监视服务的客户端,所以定义两种监听器:Acceptor和MonitorAcceptor. 由于两者的关于监听部分的逻辑是相同的,因此首先定义了抽象类Listener来实现了监视器

UNIX网络编程卷1 回射服务器程序 TCP服务器程序设计范式 四个版本

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 这是一个简单的回射服务器程序.它将客户发送的数据读入缓冲区并回射其中内容 下面我会介绍同一个使用 TCP 协议的回射服务器程序的几个不同版本,分别是 fork 版本.select 版本.poll 版本.多线程版本 fork 版本:为每一个客户连接派生(fork) 一个子进程用来处理客户请求 /** * TCP/IPv4 协议相关 * **/ #include "unp.h" in

完成端口与高性能服务器程序开发

原文出处:http://blog.csdn.NET/roen/archive/2007/03/19/1533378.aspx 以一个文件传输服务端为例,在我的机器上它只起两个线程就可以为很多个客户端同时提供文件下载服务,程序的性能会随机器内CPU个数的增加而线性增长,我 尽可能做到使它清晰易懂,虽然程序很小却用到了NT 5的一些新特性,重叠IO,完成端口以及线程池,基于这种模型的服务端程序应该是NT系统上性能最好的了. 首先.做为完成端口的基础,我们应该理解重叠IO,这需要你已经理解了内核对象及

TCP客户/服务器程序概述

一个回射服务器: 1)客户从标准输入读入一行文本,并写给服务器 2)服务器从网络输入读入这行文本,并回射给客户 3)客户从网络输入读入这行回射文本,并显示在标准输出上 回射输入行这样一个客户/服务器程序是一个尽管简单然而有效的网络程序例子 实现任何客户/服务器网络应用所需的所有基本步骤可通过本例子阐述 若想把本例子扩充成你自己的应用程序,你只需修改服务器对来自客户的输入的处理过程 除了以正常的方式运行本例子的客户和服务器(即键入一行文本并观察它的回射)之外 我们还会讨论它的许多边界条件: 客户和

nodejs的简单服务器程序

下面是参考<Jquery.Jquery UI 及Jquery Mobile>一书中的nodej服务器程序 var http = require('http'), url = require('url'), fs = require('fs'); http.createServer(function (req, res) { var reqData = { url: url.parse(req.url, true), method: req.method, headers: req.header