
开发调试环境: Ubuntu 1410,openJdk 17,Android Studio 102,android-501_r1源码
由于AS是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA
一、修改Android Studio(以下简称AS)的内存配置
因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64vmoptions(x86的机器修改studiovmoptions)中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件
并将其作为要使用的SDK的Java SDK。如下图
三、生成导入AS所需配置文件(ipr)
①编译源码(为了确保生成了java文件,如Rjava;如果编译过,则无需再次编译)
②检查out/host/linux-x86/framework/目录下是否有idegenjar
如果idegenjar不存在,执行:
mmm development/tools/idegen/
在501的源码中会生成resjava的文件夹,导致idegenjar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。
我的分享里有修改这个bug的patch,或者直接使用我分享的idegenjar。
③执行
development/tools/idegen/idegensh
等待出现类似下面的结果:
Read excludes: 5ms
Traversed tree: 44078ms
这时会在源码的根目录下生成androidipr和androidiml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件
Tips:
AS在导入代码时比较慢,建议先修改androidiml,将自己用不到的代码exclude出去可以仿照过滤repo文件夹的语法,如:
<excludeFolder url="file://$MODULE_DIR$/repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
这样在导入时就会跳过abi和art文件夹过滤的越多,AS的处理速度就会越快
④在AS中打开源码根目录下新生成的androidipr
源程序文件是是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。通常由高级语言编写。源程序可以是以书籍或者磁带或者其他载体的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机可执行的程序。
将人类可读的程序代码文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,由各种编译器来完成。一般用高级语言编写的程序称为“源程序”。
扩展资料
源程序 的作用
1生成目标程序;
2对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。
但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。
参考资料来源:百度百科-源程序
C++的IDE与编译器的区别:
IDE(Integrated Development Environment)指集成开发环境,也就是用于编辑代码、开发程序的应用程序,一般包含代码编辑器与编译器等。C++的IDE有Visual C++60、GUIDE等;
编译器(Compiler),则是用于将高级编程语言代码翻译成目标代码(如机器语言)的程序。C++的编译器是g++。
上面说了,IDE一般包含编译器,也就是说编译器一般属于IDE的一部分。在IDE中可编辑、编译代码,而编译器只能编译代码。
你的动态分配有问题,主要是错在深拷贝的构造函数和重载的赋值运算符上了,不同环境下对这些错误容忍度不同,以下是改了的:
#include<iostream>
using namespace std;
class List {
private:
double node;
int size;
public:
List() { node=new double(0); size=new int(0); }
List(double x)
{
node = new double(x);
size=new int(0);
}
List(const List &x) {
cout << "拷贝构造函数" << endl;
node=new double(xnode);
size=new int(xsize);
}
~List() {
cout << "析构函数" << endl;
delete node;
delete size;
}
void output() const {
cout << "node = " << node << "\tsize = " << size << endl;
cout << "adress " << (void)node << "\taddress " << (void)size << endl;
}
List operator = (const List &x) {
//node=xnode;
//size=xsize;
delete node;
delete size;
node = new double(xnode);
size = new int(xsize);
return this;
}
};
int main() {
double a=9;
List la(&a),lb;
laoutput();
lboutput();
cout << "即将调用拷贝构造函数" << endl;
lb=la;
cout << "已调用拷贝构造函数" << endl;
laoutput();
lboutput();
return 0;
}
我们使用编译器将自己的源代码转换成目标代码, 使用链接器将我们的目标代码链接成一个可执行程序。另外, 我们使用一些程序在计算机中输入源代码文本并且编辑它。这些是最初的和最重要的工具, 它们构成程序员的工具集合或“程序开发环境”。 如果你使用的是命令行窗口, 就像很多专业程序员所做的那样, 你将不得不自己来编写编译和链接命令。如果你使用IDE(“交互式开发环境”或“集成式开发环境”), 就像很多程序员所做的那样, 简单地点击正确按钮就可以完成这个工作。附录C介绍了如何在你的C++实现中编译和链接。 IDE通常包括一个具有有用特性的编辑器, 例如用不同颜色的代码来区分你的源代码中的注释、 关键字和其他部分, 以及其他帮助你来调试代码、 编译和运行代码的功能。调试是发现程序中的错误和排除错误的活动, 你在前进的道路上会听到很多有关它的内容。 我们使用微软的Visual C++作喑炭 ⒒肪呈道 H绻 颐羌虻サ厮怠氨嘁肫鳌被蚴恰癐DE”的某些部分, 那就是所指Visual C++系统。但是, 你可以使用一些提供最新的、 符合标准的C++实现的系统。我们所说的大多数内容(经过微小的修改)对所有的C++实现都将是正确的, 并且其代码可以在任何地方运行。在工作中, 我们使用几种不同的实现。
如果你只是单纯的只是学习标准C语言开发的话,我建议你不要用什么IDE工具,编写源代码用代码编辑器,例如Notepad++,运行代码用命令行的方式,可以下载一个CodeBlocks(网上搜索,然后到官网下载),开源免费的C/C++IDE工具,用的编译器是MinGW,这个是在Windows环境下使用的GCC编译器,然后设置环境变量,怎么设置环境变量网上搜索一大把,学习使用gcc编译命令,gcc编译器是一个极其强大的编译工具,这对你前期学习C语言有很大的帮助。
IDE这东西,如果你以后从事Windows程序开发,那你必然要使用VS IDE了,这是后话了,不过呢,开始学习C语言开发,还是不要从IDE开始,从命令行开始,则对你打好基础有极大的帮助的,记住IDE只是编程工具,只是帮助我们更好更快地开发程序而设计的,但对于刚开始的学习者来说,像VS这样的工具太过强大对学习者来说反而不是好事,等你的编程技术达到一定水平之后,再来使用IDE那是水到渠成的事了。希望对你有所帮助吧。
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。
如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver等),因为很多项任务会自动生成。
扩展资料:
IDE的优点:
1、节省时间和精力。IDE的目的就是要让开发更加快捷方便,通过提供工具和各种性能来帮助开发者组织资源,减少失误,提供捷径。
2、建立统一标准。当一组程序员使用同一个开发环境时,就建立了统一的工作标准,当IDE提供预设的模板,或者不同团队分享代码库时,这一效果就更加明显了。
3、管理开发工作。首先,IDE提供文档工具,可以自动输入开发者评论,或者迫使开发者在不同区域编写评论。其次,IDE可以展示资源,更便于发现应用所处位置,无需在文件系统里面艰难的搜索。
参考资料来源:百度百科-IDE
以上就是关于怎样在ide中进行jvm源码的调试全部的内容,包括:怎样在ide中进行jvm源码的调试、源程序文件是什么、C++之IDE和编译器的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)