文章目录:
- 1、idea 调试java源码出现以下问题,求大神解决?
- 2、如何使用 Idea 远程调试 Java 代码
- 3、怎样在ide中进行jvm源码的调试
- 4、intellij idea 怎么调试代码
- 5、如何在intellij idea中调试Tomcat源码
- 6、如何进行源代码级的IDE调试
idea 调试java源码出现以下问题,求大神解决?
这个是de bug的断点调试,你点击的图标是下一步,从断点开始,会按照代码一步步执行的,如果需要直接执行完,就需要跳过当前断点,按快捷键f9,继续执行,进入下一个断点,或执行完程序。
如何使用 Idea 远程调试 Java 代码
项目的部署方式有在本地搭建服务器进行启动或是debug,或是将项目在远程服务器上面部署。一般如果在本地搭建服务器的时候,可以直接选择启动或是直接debug,但是如果项目部署在远程的服务器上面的时候, 我们该如何进行调试呢?而一些大公司的项目是不需要在本地搭建应用服务器的,为了环境统一,应用服务器都是在远程服务器上面,这时我们就需要用远程debug,通过远程服务器的ip地址和远程开启的debug端口进行调试:
1.首先把远程服务器上面需要调试的代码放在IDE里面
2.在菜单栏选择run -edit Configuration,点击+号,选择remote,然后在配置项里面输入远程需要调试机器的IP地址和所对应的端口号,最后在最上面输入该次一远程调试的项目名字,方便自己区分不同的项目
3.将配置项中的-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5080添加到JAVA_OPTS的属性中,重启远程tomcat服务器
3.再次选择菜单条run按钮,找到debug+“自己设置的项目名字”,点击然后就可以进行远程debug调试
4.在本地项目中设置断点,然后访问远程机器上面的IP和端口,然后就可以在本地debug调试了
怎样在ide中进行jvm源码的调试
开发调试环境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源码
由于AS是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA
一、修改Android Studio(以下简称AS)的内存配置
因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmoptions)中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件
并将其作为要使用的SDK的Java SDK。如下图
三、生成导入AS所需配置文件(*.ipr)
①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)
②检查out/host/linux-x86/framework/目录下是否有idegen.jar
如果idegen.jar不存在,执行:
mmm development/tools/idegen/
在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。
我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。
③执行
development/tools/idegen/idegen.sh
等待出现类似下面的结果:
Read excludes: 5ms
Traversed tree: 44078ms
这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件
Tips:
AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如:
excludeFolder url="" /
excludeFolder url="" /
excludeFolder url="" /
这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快.
④在AS中打开源码根目录下新生成的android.ipr
intellij idea 怎么调试代码
断点测试就是在每行程序的前面行号后面,点击之后出现红色的笑图标。与eclipse不同的地方就是,eclipse是双击产生断点
如何在intellij idea中调试Tomcat源码
安装好之后,直接新建一个project,一直点击next就好,如下图
可以看出,这是我们创建的只是一个普通的java项目,所以右击项目名,点击Add Framework
勾选Web Application 然后点击OK
这是你可以看见你的src下多了一个web,然后鼠标移到界面右上角,点击Edit
然后如下图,依次点击加号,找到tomcat,点击local
之后会出现下图,name栏可以随意填写,然后点击Configure,找到你的tomcat的目录,一定要是bin目录的父目录,最后你会看见一个fix的警告,点击它
直接点击加号,然后选择Artifact
点击OK,配置就完成了。
最后我们来测试一下
很明显,运行成功,说明配置完成!
如何进行源代码级的IDE调试
开发调试环境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源码
由于AS是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA
一、修改Android Studio(以下简称AS)的内存配置
因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmoptions)中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件
并将其作为要使用的SDK的Java SDK。如下图
三、生成导入AS所需配置文件(*.ipr)
①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)
②检查out/host/linux-x86/framework/目录下是否有idegen.jar
如果idegen.jar不存在,执行:
mmm development/tools/idegen/
在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。
我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。
③执行
development/tools/idegen/idegen.sh
等待出现类似下面的结果:
Read excludes: 5ms
Traversed tree: 44078ms
这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件
Tips:
AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如:
excludeFolder url="" /
excludeFolder url="" /
excludeFolder url="" /
这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快.
④在AS中打开源码根目录下新生成的android.ipr
如果在导入时AS出现
则建议按照其给定的解决方法来解决(网址:),具体内容如下图:
四、解决源码中跳转错误问题
①为当前工程设置正确的SDK和JDK
②设置'Modules'的依赖
先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
点击上图中'2'指向的'+'并选择上图'3'指向的'Jars or directories'选项,依次将frameworks和external文件夹添加进来.如:
其它版本的代码在添加frameworks时可能会显示成:
没有关系,只是显示问题,点击OK还是会把frameworks路径添加进去的.
如果还有代码跳转错误,请仿照上面的步骤将相应代码的路径或jar文件添加到其Dependencies标签页中即可.
五、DEBUG源码
我们可以通过给刚导入的工程在'Modules'中添加'Android Framework'来让AS将它作为一个Android工程,从而方便我们调试代码.
可以按照上图中'1'和'2'来添加Android Framework支持.
在代码中加断点,然后选择'Run'-'Attach debugger to Android process'或者直接点击下图所示的图标
在弹出的选择进程(Choose Process)对话框中,勾选显示所有进程,选择要DEBUG的代码所在的进程,点击OK即可.
六、其它
代码中很多地方提示Call requires API Level x.... 出现这个问题是因为AS将我们的工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.
我们只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个AndroidManifest.xml)。
也可以考虑使用build.gradle来解决该问题。
成了.java文件,如R.java;如果编译过,则无需再次编译)②检查out/host/linux-x86/framework/目录下是否有idegen.jar如果i
requires API Level x.... 出现这个问题是因为AS将我们的工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.我们只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个Android
容如下图:四、解决源码中跳转错误问题①为当前工程设置正确的SDK和JDK②设置'Modules'的依赖先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删