Exception in thread "main" java.lang.OutOfMemoryError: Java heap space [message #522750] |
Tue, 23 March 2010 16:06  |
Eclipse User |
|
|
|
Any idea how to fix the issue?
See below the output of the xdc .interfaces command
% xdc .interfaces
#
# making package.mak (because of package.bld) ...
/db/wisap/tools/ti/rtsc/xdctools_3_16_02_32/tconf -Dxdc.path=" /db/wisap/tools/ti/rtsc/xdctools_3_16_02_32/packages;../../. ./../.. " -Dxdc.root=/db/wisap/tools/ti/rtsc/xdctools_3_16_02_32 -Dxdc.hostOS=Linux -Dconfig.importPath=" .;/db/wisap/tools/ti/rtsc/xdctools_3_16_02_32/packages;../.. /../../..;/db/wisap/tools/ti/rtsc/xdctools_3_16_02_32;/db/wi sap/tools/ti/rtsc/xdctools_3_16_02_32/etc " -Dxdc.bld.targets="" -DTOOLS= /db/wisap/tools/ti/rtsc/xdctools_3_16_02_32/packages/xdc/bld /bld.js ./config.bld package.bld package.mak
Linux
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_on_debug_64P_le.a64P
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_on_release_64P_le.a64P
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_off_debug_64P_le.a64P
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_off_release_64P_le.a64 P
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_on_debug_64P_le.a64P
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_on_release_64P_le.a64 P
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_off_debug_64P_le.a64P
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_off_release_64P_le.a6 4P
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_on_debug_64P_be.a64Pe
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_on_release_64P_be.a64P e
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_off_debug_64P_be.a64Pe
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_off_release_64P_be.a64 Pe
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_on_debug_64P_be.a64Pe
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_on_release_64P_be.a64 Pe
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_off_debug_64P_be.a64P e
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_off_release_64P_be.a6 4Pe
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_on_debug_i686_le.a86U
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_on_release_i686_le.a86 U
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_off_debug_i686_le.a86U
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_on_trace_off_release_i686_le.a8 6U
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_on_debug_i686_le.a86U
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_on_release_i686_le.a8 6U
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_off_debug_i686_le.a86 U
ArchiveGoal: ti_wbi_umts_rac_racfd_assert_off_trace_off_release_i686_le.a 86U
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
gmake: *** Deleting file `package.mak'
|
|
|
|
|
|
|
Re: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space [message #523089 is a reply to message #523071] |
Wed, 24 March 2010 21:22   |
Eclipse User |
|
|
|
For what it's worth, I tried to reproduce this but no luck so far. I created a package that generated 500 source files and used them to build ten libraries. This thread doesn't allow attachments, but I appended my package.bld below.
This is a stretch, but worth asking. Are you doing anything complex in your package.bld that could itself eat up heap space?
For example in my test I used java.io calls to synthesize the source files. I could imagine that maybe not closing these IO streams, or saving them in an array so that they couldn't be garbage collected, or something like that, could produce this behavior.
In any case, we'll continue to try to reproduce it.
Jon
/* compile for the first target configured in config.bld */
var target = Build.targets[0];
var letters = ['a','b','c','d','e','f','g','h','i','j'];
var digits = ['0','1','2','3','4','5','6','7','8','9'];
var quals = ['A','B','C','D','E'];
/* generate 500 dummy source files */
var sourcefiles = [];
for each (var letter in letters) {
for each (var digit in digits) {
for each (var qual in quals) {
/* generate the source file name */
var base = letter + digit + qual;
var filename = base + '.c';
sourcefiles.push(filename);
/* mark the file as generated so that it gets cleaned */
Pkg.generatedFiles.$add(filename);
/* generate the contents */
if (!java.io.File(filename).exists()) {
var ps = java.io.PrintStream(filename);
ps.println("int " + base + " = 1;");
ps.close();
}
}
}
}
/* generate ten libraries */
var libs = [];
for each (var letter in letters) {
/* register the library */
var libName = letter;
var lib = Pkg.addLibrary(libName, target);
/* add all the source files to the library */
for each (var filename in sourcefiles) {
lib.addObjects([filename]);
}
}
|
|
|
|
Re: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space [message #523145 is a reply to message #523089] |
Thu, 25 March 2010 06:29  |
Eclipse User |
|
|
|
I am not doing anything special. Below is my package.bld script
function listFiles(ext, dir)
{
var srcFile = [];
var d;
if (dir == undefined)
d = ".";
else
d = dir;
/* Get access to the current directory. */
var file = new java.io.File(d);
/* Check if the file exists and it is a directory. */
if (file.exists() && file.isDirectory())
{
/* Get a list of all files in the specific directory. */
var fileList = file.listFiles();
for (var i = 0; i < fileList.length; i++)
{
/* Dont add the generated directory 'package' and any of its files
* to the list here. */
if (fileList[i].getName().matches("package") == false)
{
/* Check if the detected file is a directory and if so we need to
* recursivly detect all the files within that directory too. */
if (fileList[i].isDirectory())
{
/* Generate the directory Name in which we will recurse. */
var directoryName = d + "/" + fileList[i].getName();
/* Get a list of all files in this directory */
var fileListing = listFiles (ext, directoryName);
if (fileListing != null)
{
/* Return a list of all file names in the directory. */
for (var j = 0 ; j < fileListing.length; j++)
srcFile[srcFile.length++] = fileListing[j];
}
}
else
{
/* This was a file. Check if the file name matches the extension */
if (fileList[i].getName().endsWith(ext) == true)
srcFile[srcFile.length++] = d + "/" + fileList[i].getName();
}
}
}
return srcFile;
}
return null;
}
function modBuild()
{
var pkg = Pkg;
var srcDir = "src"
var srcFiles = listFiles("c",srcDir);
var library = xdc.useModule('xdc.bld.Library');
var libAttrs = new library.Attrs;
/* Build the libraries for all the targets specified. */
for (var target=0; target < build.targets.length; target++)
{
var endian = build.targets[target].model.endian;
if (endian=="little")
{
endian="le";
}
else
{
endian="be";
}
var isa = build.targets[target].isa
var pkgName = pkg.name.replace(/\./g, "_");
for (var profile in build.targets[target].profiles)
{
if (profile.search(pkgName)!=-1)
{
libAttrs.profile=profile;
var name = libAttrs.profile + "_" + isa + "_" + endian;
libAttrs.copts="";
if ((build.targets[target].name == "C64P_big_endian") ||
(build.targets[target].name == "C64P"))
{
libAttrs.copts += "-fb=./" + pkg.libDir + name + "/" + srcDir + " ";
libAttrs.copts += "-ft=./" + pkg.libDir + name + "/" + srcDir + " ";
libAttrs.copts += "-ff=./" + pkg.libDir + name + "/" + srcDir + " ";
}
var lib = pkg.addLibrary(name, build.targets[target], libAttrs);
lib.addObjects (srcFiles);
print ("ArchiveGoal: " + lib.name + lib.attrs.suffix);
}
}
}
}
modBuild();
|
|
|
Powered by
FUDForum. Page generated in 0.05974 seconds