服务器程序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的更多相关文章

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

    在一个服务器程序中,监听器的作用类似于公司前台,起引导作用,因此监听器花在每个新连接上的时间应该尽可能短,这样才能保证最快响应. 回到编程本身来说: 1. 监听器最好由单独的线程运行 2. 监听器在接 ...

  2. Linux 高性能服务器编程——Linux服务器程序规范

    问题聚焦:     除了网络通信外,服务器程序通常还必须考虑许多其他细节问题,这些细节问题涉及面逛且零碎,而且基本上是模板式的,所以称之为服务器程序规范.     工欲善其事,必先利其器,这篇主要来探 ...

  3. Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用

    Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...

  4. python 之 Django框架(服务器程序和应用程序、基础必备三件套及相关配置)

    第十二章 Django框架 12.1 服务器程序和应用程序 服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理.应用程序则负责具体的逻辑处理.为了方便应用程序的开发, ...

  5. 7 linux服务器程序规范

    1. Linux服务器程序一般以后台进程形式运行.后台进程又称守护进程(daemon),它没有控制终端,因而不会意外接收到用户输入.父进程通常为init(PID为1的进程)2. Linux服务器程序常 ...

  6. 服务器程序源代码分析之三:gunicorn

    服务器程序源代码分析之三:gunicorn 时间:2014-05-09 11:33:54 类别:网站架构 访问: 641 次 gunicorn是一个python web 服务部署工具,类似flup,完 ...

  7. Java实现Linux下服务器程序的双守护进程

    作者:Vinkn 来自http://www.cnblogs.com/Vinkn/ 一.简介 现在的服务器端程序很多都是基于Java开发,针对于Java开发的Socket程序,这样的服务器端上线后出现问 ...

  8. TCP客户/服务器程序概述

    一个回射服务器: 1)客户从标准输入读入一行文本,并写给服务器 2)服务器从网络输入读入这行文本,并回射给客户 3)客户从网络输入读入这行回射文本,并显示在标准输出上 回射输入行这样一个客户/服务器程 ...

  9. nodejs的简单服务器程序

    下面是参考<Jquery.Jquery UI 及Jquery Mobile>一书中的nodej服务器程序 var http = require('http'), url = require ...

随机推荐

  1. 2013-09-25-【随笔】-Roy

    路怒了. 要淡定,心态要好. 不能和不要命的傻X较劲. 路怒不好! 淡定!

  2. SQL Saturday活动再起

    SQL Saturday活动再起 时间:2015年05月09日(星期六) 地点:上海徐汇区港汇2座10楼(10.073) 我们相约港汇2座10楼(10.073),SQL PASS上海分会的SQLSat ...

  3. CoreCLR 在 Linux 下编译成功

    https://github.com/dotnet/coreclr/wiki/Building-and-Running-CoreCLR-on-Linux ubuntu-14.10 clang --ve ...

  4. 我的ORM之三 -- 更新

    我的ORM索引 更新语法 var 影响行数 = dbr.表.Update(实体).Where(条件).Execute(); 实体类型: 更新的实体类型和添加的实体类型一样,有三类: 1. 任何C#类. ...

  5. Wix 安装部署教程(七) 获取管理员权限

    应用程序运行的时候,难免会读写文件,产生新的数据.但Program Files下的文件是不能随便更改,Win7下如果没有权限,将会被拒绝.我现在有两种方式,一种是将数据路径移到Program Data ...

  6. Java基础类型总结

    最近一直在总结反思自己, 趁着现在请假在学校上课的空余时间,从基础开始重新温故学习下Java,充实下自己. 一.数据类型 从下图中,我们可以很清晰的看出Java中的类型,其中红色方框中的是Java的4 ...

  7. Log4Net指南

    英文好的直接看这里:http://www.codeproject.com/Articles/140911/log4net-Tutorial 介绍 log4net.是.NET下面最伟大的日志工具之一.简 ...

  8. Mybatis入门例子

    Mybatis是轻量级的持久化框架,的确上手非常快. Mybatis大体上的思路就是由一个总的config文件配置全局的信息,比如mysql连接信息等.然后再mapper中指定查询的sql,以及参数和 ...

  9. Gridview转发

    首页 开源项目 问答 动弹 博客 翻译 资讯 专题 城市圈 [ 登录 | 注册 ] 博客专区 > Reya滴水心的博客详情 Asp.net中GridView使用详解(很全,很经典) Reya滴水 ...

  10. iOS-数据持久化-CoreData

    CoreData详解 介绍: 在Cocoa环境下,如果你想使用数据库(如sqlite),你可以使用sql语句的方式通过相关的工具类进行数据库的直接操作.当然你也可以通过别人封装之后的一些简单框架,使得 ...