`
- 浏览:
16454 次
- 性别:
- 来自:
杭州
-
最近一个同事在使用Eclipse搭建初始WEB项目环境的时候,在后台的Servlet代码上修改之后,Debug调试的时候,修改的代码始终没有生效,并且总是会走到注释的那部分程序。我过去看了一下,说肯定是你写的程序没有被重新编译,Debug的class走的还是原来的那部分class文件。这时候,我的这位同事就反驳说,Debug的时候就是因为走的是class字节码,所以运行注释的部分也会被判断这行是不是注释,Debug的时候注释也不会忽略的。我听完他说的后,我当时的第一反应是根据我一直的Debug经验注释肯定是不会被Debug执行的,但是我在想,我是不是应该找到更专业的说法来解释这个问题。
带着这样的想法,我试图去网上搜索了相关的内容:
1、java Debug的体系:JPDA
JPDA(Java Platform Debugger Architecture)是 Java 平台调试体系结构的缩写。它包括三个模块:
1)Java 虚拟机工具接口(JVMTI)-底层
2)Java 调试线协议(JDWP)-中间层
3)Java调试接口(JDI)-高层。
以Eclipse调试为例,实际是Eclipse实现了JDI调试接口,通过JDWP调试通信协议,访问JVMTI对class文件进行调试。
同时,我们可以把JPDA看成C/S框架体系,也就是说debugger端可以通过网络远程访问JVM
服务器,这就是为什么我们可以对JAVA进行远程调试。
2、了解java 调试器原理:
在查找这方面的资料时,在java文件编译成class文件的时候,有个关于debug必须选项:源文件行号(InputStartLine) 目标文件开始行号(OutputStartLine) 是必须的。以单步调试为例,Debug时把源文件中的行号通过JPDA通知映射到class文件对应的行,然后
就可以返回调试的结果信息。
了解了这两方面的内容,我们就大概清楚了Java Debug的执行过程,但是仍然无法解释我开头提到的问题,那么我就接着查相关的信息,关于java注释编译的信息,我终于得到了答案:java文件编译的时候,注释是不会被编译到class文件中。
通过这个问题的分析,让我对java debug理论方面有了更多了解,同时也对关于远程调试相关的内容有了更深的理解。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
java debug源码包,不用自己生成,直接将源码包导入即可调试java源码,参考网址http://www.cnblogs.com/blogxiao/p/7865542.html
### Java Debug技巧:Eclipse高级调试指南 #### 一、引言 在软件开发过程中,调试是必不可少的一个环节。良好的调试技巧能够显著提高问题定位的速度和准确性,从而提升整体的开发效率。Eclipse作为一款非常受欢迎...
66.java中Debug描述.zip66.java中Debug描述.zip66.java中Debug描述.zip66.java中Debug描述.zip66.java中Debug描述.zip66.java中Debug描述.zip66.java中Debug描述.zip66.java中Debug描述.zip66.java中Debug描述.zip66...
67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作流程.zip67.java中Debug操作...
Java 调试技术概述 Java 调试是指使用程序调试工具来检查和纠正 Java 程序中的错误和异常。调试是软件开发过程中不可或缺...同时,本文还强调了在使用 Debug 时需要注意的问题,帮助开发者更好地应用 Java 调试技术。
BTrace是Java开发者在生产环境中进行问题排查的一个强大工具。它无需修改或重新部署代码,就能实时地对运行中的Java应用程序进行动态追踪,帮助我们收集必要的信息,如方法调用、性能指标、日志记录等。这种“热调试...
总之,掌握和利用可以debug和加注释的JDK源码,不仅能提升我们的编程技能,也能增强问题解决能力。无论是初学者还是资深开发者,都应该重视对JDK源码的学习和研究,这对于个人成长和团队协作都具有深远的影响。
http debug 网络相关 http技术
"vscode-java-debug" 是一个专为Visual Studio Code(VSCode)设计的插件,它的主要功能是提供Java语言的调试支持。这个插件使得开发者能够在VSCode这款流行的源代码编辑器中高效地调试他们的Java应用程序。通过安装...
coc-java-debug 的以启用由加载的语言服务器的扩展。 免责声明 这开始只是一个实验,但通常“为我工作”。 你的旅费可能会改变。 先决条件 确保安装了扩展名。 :CocInstall coc-java 您还需要Vim插件。 安装 :...
其实从本质上来说, Debug是一种程序,一种调试工具,说白了就是供程序员检查修改问题的工具。用比较正式的话说Debug是DOS,Debug把所有数据都当成字节处理,因此可以用它检查内存中任何地方的字节以及修改任何地方...
总结来说,Pycharm无法debug的问题通常涉及网络设置、项目配置或模块冲突等方面。通过仔细排查,大多数情况下可以找到问题所在并解决。在遇到这类问题时,不要忽视任何可能的线索,如错误信息,它们往往能提供解决...
1. **JDK Debug工具**:Java Development Kit(JDK)内含强大的Java调试工具集(JDB),它是命令行工具,适用于基础的远程和本地调试。学习如何配置JDB,并使用其基本命令如`step`、`next`、`print`等进行单步执行、...
"Debug-Java.rar" 是一个专门针对Java编译器的压缩包,其中包含了一个名为 "Debug.java" 的源代码文件,用于展示如何实现一个简单的编译器。这个编译器可能包含了对Java语法的理解和解析,以及数据类型的处理和抽象...
关于SAP Debug的基本知识 SAP Debug是一种重要的调试工具,帮助开发者和管理员解决SAP系统中的错误和问题。在这篇文章中,我们将介绍SAP Debug的基本知识,并描述一些常用的Debug工具和技巧。 T-cd:SM21 系统日志...
java-1.8.0-openjdk-debuginfo-1.8.0.232.b09-0.el7_7.x86_64.rpm
MyEclipse Debug 调试是 Java Web 项目开发中非常重要的一步,正确的 Debug 调试可以帮助开发者快速地定位和解决问题。本文将总结 MyEclipse Debug 调试步骤,帮助开发者快速上手使用 MyEclipse 来 Debug 调试 Java ...
- 作为开源项目,vscode-java-debug 允许用户参与其中,贡献代码,提出问题和建议,共同推动其发展。 - 开源社区的活跃意味着插件会不断更新和完善,以适应Java语言和VSCode的最新特性。 总结来说,vscode-java-...
远程debug调试Java,直接替换到apache-tomcat-7.0.78/bin/下的startup.sh