如何用eclispetomcat开启远程调试试tomcat

当前位置: >
Eclispe+qemu+gdb调试linux Kernel
时间: 18:31 来源:未知 作者: 阅读:次
单步调试kernel说明
恩,这个文档的目标是单步调试内核,从每一个工具软件的版本号到每一个命令,都有一个说明
ubuntu1204,32位
http://www./download/desktop
用vmware虚拟机安装该系统。
用64位系统时,gdb有bug。报错信息为:xxx太长。所以建议用32位系统
编译kernel 3.5.4
下载内核的地址,北京交通大学的映像地址:http://mirror./kernel/linux/kernel/v3.x/
我下载的内核源码版本号3.5.4
为防止系统有些组件版本号较低,考虑如下两个命令更新系统:
sudo&apt-get&update
sudo&apt-get&upgrade
sudo&apt-get&install&build-essential
编译步骤:进入kernel的根目录后,命令如下:
make menuconfig&
//提示没有找到ncurses 安装一下:sudo apt-get install libncurses //贾迪提示:可以用libncurses* //Kernel Hacking && 找到Compile the kernel with debug info& and &Compile the kernel with frame pointers& 这两个选项,必须是选中的。其他,不用改设置,按照默认就行,直接按两下esc,选择保存并退出
qemu 1.4.0
http://wiki.qemu.org/Download
按照官网的说明,编译,安装:http://qemu.weilnetz.de/qemu-doc.html#compilation
编译qemu报错
缺glib,解决方法:sudo apt-get install libglib2.0-dev
缺autoconf,解决方法:sudo apt-get install autoconf automake libtool
用较老版本qemu时,或者直接用ubuntu source中的qemu时,单步调试失败。
使用:验证编译的内核已经可以通过qemu运行起来
qemu-system-i386 -kernel (kernel根目录)/arch/x86/boot/bzImage -initrd /boot/initrd.img-3.5.0-25-generic
注意:kernel后的参数为自己编译的内核,initrd参数为系统自带的文件,不同系统可能版本号不同 开始运行后,它会提示在vnc 102.0.0.1:5900 启动了。
然后在ubuntu桌面界面下,按下键盘中windows键(mac按command键),输入remote,找到&Remmina Remote Desktop Client&软件,打开后,新建一个远程连接,注意 协议用VNC,server填写127.0.0.1:5900
在进入系统之后,输入uname -a或者uname -r来检验该系统是不是正在运行自己编译内核,看到3.5.4即可。
JDK(运行eclipse需要的java环境)
/technetwork/java/javase/downloads/jdk7-downloads-1880260.html版本号,7u15。一般情况下,采用最新的版本号即可。
下载了文件:jdk-7u9-linux-i586.gz
&tar&-xzf&jdk-7u15-linux-i586.gz
移动解压缩后的文件夹到目标位置
&sudo&mkdir&/usr/lib/&&&&&
&mv&jdk1.7.0_15/&/usr/lib/jvm
设置符号链接:(注意更改为自己的版本号,install参数前面是两个短横)
sudo update-alternatives &install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_09/bin/javac 1
sudo update-alternatives &install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_09/bin/java 1
sudo update-alternatives &install /usr/bin/jar jar /usr/lib/jvm/jdk1.7.0_09/bin/jar 1
sudo update-alternatives &install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.7.0_09/bin/javadoc 1
eclipse JUNO
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/junosr2下载来解压缩即可。
eclipse插件:CDT
http://download.eclipse.org/tools/cdt/builds/
我下载的版本号:cdt-master-7.0.1-I
下载到的zip压缩包。不用解压缩,安装方式:打开eclipse,
Help按钮 && Install New Software && Add按钮 在弹出的对话框中,Name随便填一个就行,Location,点右侧的Archive按钮,选择刚下载的zip文件。 安装即可。
qemu+eclipse+gdb调试kernel
启动qemu,命令如下:
qemu-system-i386 -s -S -kernel ~/Desktop/linux-3.5.4/arch/x86/boot/bzImage -initrd /boot/initrd.img-3.5.0-25-generic
-s 为默认远程调试,端口号1234
-S 为启动调试时,停止,等待gdb
-kernel 为自己编译出的bzimage,一般放在内核根目录的arch/x86/boot/
-initrd 后面为自己ubuntu的某个镜像。
Window &&Preferences && General && Workspace,将&build automatically&去掉
Window && Preferences && c/c++ && Indexer中,将Enable indexer取消
File-&New-&Project&&&c/c++ && C project
Location处:选择自己的内核根目录文件夹
工程类型选择Makefile Project,EmptyProject
工具链选择,LinuxGCC
在Project Explorer中,右键自己的工程,选择Debug As && Debug Configurations,在弹出的对话框中双击&GDB Hardware Debugging&,将会让你设置调试参数等。随意写一个Name,这个Name应该是这个调试配置文件的名字。&
配置调试参数:在Main标签中,c/c++Application的框里,选择自己编译出来的vmlinux文件,该文件位置应该就在源码的根目录下。选中Disable auto build.&
在Debugger标签中,GDB Command处填gdb,勾选use remote target,port number处填1234,因为qemu模拟器默认的远程端口就是1234.
在Startup标签中,去掉三个勾。
点击Debug,开始调试。
验证调试 我在init/main.c的第486行设置一个断点。
Window && Show View && Expressions,打开后,输入我要观测的变量名字,early_boot_irqs_disabled,等运行到该断点时,看到其值从false变为true,验证了基本调试功能正常。
本文出自 &陈漂评的博客& 博客,请务必保留此出处http://chenpiaoping./0057如何用eclispe远程调试tomcat_百度知道
如何用eclispe远程调试tomcat
提问者采纳
xml配置如下iamdebugman
V3 | 网络管理与维护 最快回答在eclispe中新建web应用.bat。在eclipse中,在右边在Host中的输入tomcat的主机名,修改为“call &quot,然后打开浏览器.bat。复制startup.bat”,找到call &quot.war文件。Web。修改tomcat的启动脚本“debug confiurations”; jpda start %CMD_LINE_ARGS%”,用debug模式启动tomcat。在tomcat的后台可以看到tomcat已经在9000端口进行监听。把webtest导出为webtest,然后打开startup-debug,也就是9000.bat,然后点击“debug”,点击菜单项“run”-&gt。然后在eclipse的HelloServlet第一行打一个断点,Port中输入端口号.bat为startup-debug,在里面双击“Remote Java Application”.war拷贝到tomcat的webapps目录下;%EXECUTABLE%&%EXECUTABLE%&quot,名字叫webtest,然后把webtest。里面只有一个HelloServlet:set JPDA_TRANSPORT=dt_socketset JPDA_ADDRESS=9000set JPDA_SUSPEND=n 双击“startup-debug,然后在上面添加三行; start %CMD_LINE_ARGS%这一行,打开debug confiurations对话框。当然也可以在name中自定义一个你喜欢的名字
其他类似问题
为您推荐:
tomcat的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁随笔 - 1106&
文章 - 22&评论 - 144&trackbacks - 0
原文地址:/article/f4ef6b1b87507b06.html
tomcat是一种非常常见的java web应用服务器,有时候服务器可能并不是部署在本地,而是部署在远程其他的机器上,我们用eclispe该如何进行debug调试呢?下面小编就和大家分享一下解决的办法。
在eclispe中新建web应用,名字叫webtest。里面只有一个HelloServlet。Web.xml配置如下。
修改tomcat的启动脚本startup.bat。复制startup.bat为startup-debug.bat,然后打开startup-debug.bat,找到call "%EXECUTABLE%" start %CMD_LINE_ARGS%这一行,修改为&call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%&,然后在上面添加三行:
set JPDA_TRANSPORT=dt_socket
set JPDA_ADDRESS=9000
set JPDA_SUSPEND=n
&双击&startup-debug.bat&,用debug模式启动tomcat。在tomcat的后台可以看到tomcat已经在9000端口进行监听。
在eclipse中,点击菜单项&run&-&&debug confiurations&,打开debug confiurations对话框,在里面双击&Remote Java Application&,在右边在Host中的输入tomcat的主机名,Port中输入端口号,也就是9000,然后点击&debug&。当然也可以在name中自定义一个你喜欢的名字。
把webtest导出为webtest.war文件,然后把webtest.war拷贝到tomcat的webapps目录下。然后在eclipse的HelloServlet第一行打一个断点,然后打开浏览器,输入http://localhost:8080/webtest/hello,然后回车。就会看到eclipse停在了断点上。
怎么样,是不是很简单,如果觉得有用,请点击投票,小编会继续努力谢谢你的支持哦
阅读(...) 评论()如何用eclispe远程调试tomcat_百度知道
如何用eclispe远程调试tomcat
提问者采纳
比如想监听8017端口: 1,基本上现在主流的如Eclipse。 右键菜单选择“New”创建一个配置。这时候试试用Java的JPDA远程调试程序.新创建的配置的Project选择服务器上的工程,选一个自己喜欢的调试器、NetBean都可以://www: catalina原文地址.oschina.在对话框里找到“Remote Java Application”。我主要使用Eclipse.sh jpda start 接着,默认是8000,然后把程序上传到Linux下运行的吧。要注意不能使用 startup,只要用。Host和Port分别填写你服务器的IP和JPDA的端口。可是有时候在自己机器上运行的好好的程序.sh脚本。 3:http://www。 2,等待调试器的连接.选择“Run”菜单里的“Open Debug Dialog”。 现在就可以像本机调试一样, 设置断点和跟踪调试了.net/question/12_8196 相信很 多J2EE的开发者都是在Windows上面开发程序,放到服务器下就 出错了
来自团队:
其他类似问题
为您推荐:
tomcat的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁1.现在有一个web项目,WEB-INF/lib目录下有XXX.jar(指打包后的项目src),用eclipse调试的时候,执行的好像是jar里的代码
2.我修改了代码之后,打的断点不会执行(也就是说,调试的时候执行的是jar里的src)————如果需要执行到断点那里,是不是一定要重新把src打包成XXX.jar,然后把它放到lib目录?有没有其他的更好的方法?
问题补充:可能问题没有说清楚,再补充一下,
1.如果是正常创建的eclipse web项目,那么修改了src之后,因为eclipse是自动编译,build/classes目录下的.class文件和src里的.java文件保持一致,打的断点也会被执行到!
2.我现在的情况是,用svn更新下来的项目,该项目是没有build/classes目录的,项目的src需要打包之后放到WEB-INF/lib目录下,如果修改了src,在修改的地方打的断点不会被执行到————目前我想要执行到断点处,只能重新把src打包成jar放到WEB-INF/lib目录下!
我想问的是,有没有办法不需要每次重新打包就可以调试断点(就像1一样)?
没有build/classes目录,你可以加上去。也就是说改造一下,改成那种可以跟踪的样式。如果你只有一个java类是修改的,你可以不要全部删掉那个XXX.jar,只是将该jar中对应该类的class删掉,然后就可以跟踪了。
测试时,把那个XXX.jar删掉。这样肯定执行src中的代码。
你可以使用远程调试:
打开% CATALINE_HOME %/bin/下的文件catalina.sh加入下面这行:
declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
输入命令startup.sh 就可启动tomcat。
配置eclipse远程调试
选择菜单Run→Debug Configurations..
添加一个Remote Java Applications,如下图:
已解决问题
未解决问题

我要回帖

更多关于 tomcat 远程调试配置 的文章

 

随机推荐