public inbox for java@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: Garbage collector: Out of memory (when running AWT/SWING code   on   arm-linux)
@ 2008-09-09  9:31 ffileppo
  2008-09-09  9:46 ` Andrew Haley
  0 siblings, 1 reply; 12+ messages in thread
From: ffileppo @ 2008-09-09  9:31 UTC (permalink / raw)
  To: aph; +Cc: java

> ffileppo wrote:
> >> ffileppo wrote:
> >>>> Hi guys,
> >>>>
> >>>> I'm getting the following error:
> >>>>
> >>>> GC Warning: Out of Memory! Returning NIL!
> >>>>
> >>>> when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)

> >> I think I've found it.  The unwinder is infinitely looping 'til it runs out
> >> of memory.
> >>
> >> Some library somewhere has probably has invalid unwind information.
> >>
> >> Add this line to _Jv_StackTrace::UnwindTraceFn in stacktrace.cc:
> >>
> >> *** stacktrace.cc~      Tue Sep  4 19:00:31 2007
> >> --- stacktrace.cc       Fri Jun  6 17:42:25 2008
> >> ***************
> >> *** 110,115 ****
> >> --- 110,117 ----
> >>     // Check if the trace buffer needs to be extended.
> >>     if (pos == state->length)
> >>       {
> >> +       return _URC_END_OF_STACK;
> >> +
> >>         int newLength = state->length * 2;
> >>         void *newFrames = _Jv_AllocBytes (newLength * sizeof(_Jv_StackFrame));
> >>         memcpy (newFrames, state->frames, state->length * sizeof(_Jv_StackFrame));
> >>
> >> This will prevent more than 100 stack frames from being traced.
>
> >
> > I confirm it's working now.
> >
>
> OK, right.  I'm going to have to fix this one properly: it's a serious bug
> that prevents anyone from running any GUI applications on gcj/ARM eabi.
>
> Andrew.
>


Hi Andrew,

is this fix included in mainline gcj yet?

Thank you,

Francesco

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Garbage collector: Out of memory (when running AWT/SWING code    on   arm-linux)
  2008-09-09  9:31 Garbage collector: Out of memory (when running AWT/SWING code on arm-linux) ffileppo
@ 2008-09-09  9:46 ` Andrew Haley
  0 siblings, 0 replies; 12+ messages in thread
From: Andrew Haley @ 2008-09-09  9:46 UTC (permalink / raw)
  To: ffileppo; +Cc: java

ffileppo wrote:
>> ffileppo wrote:
>>>> ffileppo wrote:
>>>>>> Hi guys,
>>>>>>
>>>>>> I'm getting the following error:
>>>>>>
>>>>>> GC Warning: Out of Memory! Returning NIL!
>>>>>>
>>>>>> when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)
> 
>>>> I think I've found it.  The unwinder is infinitely looping 'til it runs out
>>>> of memory.
>>>>
>>>> Some library somewhere has probably has invalid unwind information.
>>>>
>>>> Add this line to _Jv_StackTrace::UnwindTraceFn in stacktrace.cc:
>>>>
>>>> *** stacktrace.cc~      Tue Sep  4 19:00:31 2007
>>>> --- stacktrace.cc       Fri Jun  6 17:42:25 2008
>>>> ***************
>>>> *** 110,115 ****
>>>> --- 110,117 ----
>>>>     // Check if the trace buffer needs to be extended.
>>>>     if (pos == state->length)
>>>>       {
>>>> +       return _URC_END_OF_STACK;
>>>> +
>>>>         int newLength = state->length * 2;
>>>>         void *newFrames = _Jv_AllocBytes (newLength * sizeof(_Jv_StackFrame));
>>>>         memcpy (newFrames, state->frames, state->length * sizeof(_Jv_StackFrame));
>>>>
>>>> This will prevent more than 100 stack frames from being traced.
>>> I confirm it's working now.
>>>
>> OK, right.  I'm going to have to fix this one properly: it's a serious bug
>> that prevents anyone from running any GUI applications on gcj/ARM eabi.
>>
>> Andrew.
>>
> 
> 
> Hi Andrew,
> 
> is this fix included in mainline gcj yet?

http://developer.classpath.org/pipermail/classpath-patches/2008-June/006116.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Garbage collector: Out of memory (when running AWT/SWING code   on   arm-linux)
  2008-06-09  8:13 ffileppo
@ 2008-06-09  9:20 ` Andrew Haley
  0 siblings, 0 replies; 12+ messages in thread
From: Andrew Haley @ 2008-06-09  9:20 UTC (permalink / raw)
  To: ffileppo; +Cc: java

ffileppo wrote:
>> ffileppo wrote:
>>>> Hi guys,
>>>>
>>>> I'm getting the following error:
>>>>
>>>> GC Warning: Out of Memory! Returning NIL!
>>>>
>>>> when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)
>>>>
>>>> For example this code:
>>>>
>>>> import javax.swing.*;
>>>>
>>>> public class SimpleFrame {
>>>>   public static void main(String args[]) {
>>>>     System.out.println("Check 1");
>>>>     JFrame f = new JFrame("Simple Frame");
>>>>     System.out.println("Check 2");
>>>>     f.setSize(200,100);
>>>>     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>>>>     f.setVisible(true);
>>>>   }
>>>> }
>>>>
>>>> gives out of memory error after printing "Check 1".
>>>> Trying with some other code I can see that the first AWT/SWING call causes this error.
>>>>
>>>> Any idea to fix / debug this problem?
>> I think I've found it.  The unwinder is infinitely looping 'til it runs out
>> of memory.
>>
>> Some library somewhere has probably has invalid unwind information.
>>
>> Add this line to _Jv_StackTrace::UnwindTraceFn in stacktrace.cc:
>>
>> *** stacktrace.cc~      Tue Sep  4 19:00:31 2007
>> --- stacktrace.cc       Fri Jun  6 17:42:25 2008
>> ***************
>> *** 110,115 ****
>> --- 110,117 ----
>>     // Check if the trace buffer needs to be extended.
>>     if (pos == state->length)
>>       {
>> +       return _URC_END_OF_STACK;
>> +
>>         int newLength = state->length * 2;
>>         void *newFrames = _Jv_AllocBytes (newLength * sizeof(_Jv_StackFrame));
>>         memcpy (newFrames, state->frames, state->length * sizeof(_Jv_StackFrame));
>>
>> This will prevent more than 100 stack frames from being traced.

> 
> I confirm it's working now.
> 
> Thank you Andrew, you saved me...again

OK, right.  I'm going to have to fix this one properly: it's a serious bug
that prevents anyone from running any GUI applications on gcj/ARM eabi.

Andrew.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Garbage collector: Out of memory (when running AWT/SWING code  on   arm-linux)
@ 2008-06-09  8:13 ffileppo
  2008-06-09  9:20 ` Andrew Haley
  0 siblings, 1 reply; 12+ messages in thread
From: ffileppo @ 2008-06-09  8:13 UTC (permalink / raw)
  To: aph; +Cc: java

> ffileppo wrote:
> >> Hi guys,
> >>
> >> I'm getting the following error:
> >>
> >> GC Warning: Out of Memory! Returning NIL!
> >>
> >> when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)
> >>
> >> For example this code:
> >>
> >> import javax.swing.*;
> >>
> >> public class SimpleFrame {
> >>   public static void main(String args[]) {
> >>     System.out.println("Check 1");
> >>     JFrame f = new JFrame("Simple Frame");
> >>     System.out.println("Check 2");
> >>     f.setSize(200,100);
> >>     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> >>     f.setVisible(true);
> >>   }
> >> }
> >>
> >> gives out of memory error after printing "Check 1".
> >> Trying with some other code I can see that the first AWT/SWING call causes this error.
> >>
> >> Any idea to fix / debug this problem?
>
> I think I've found it.  The unwinder is infinitely looping 'til it runs out
> of memory.
>
> Some library somewhere has probably has invalid unwind information.
>
> Add this line to _Jv_StackTrace::UnwindTraceFn in stacktrace.cc:
>
> *** stacktrace.cc~      Tue Sep  4 19:00:31 2007
> --- stacktrace.cc       Fri Jun  6 17:42:25 2008
> ***************
> *** 110,115 ****
> --- 110,117 ----
>     // Check if the trace buffer needs to be extended.
>     if (pos == state->length)
>       {
> +       return _URC_END_OF_STACK;
> +
>         int newLength = state->length * 2;
>         void *newFrames = _Jv_AllocBytes (newLength * sizeof(_Jv_StackFrame));
>         memcpy (newFrames, state->frames, state->length * sizeof(_Jv_StackFrame));
>
> This will prevent more than 100 stack frames from being traced.
>
> Andrew.
>


I confirm it's working now.

Thank you Andrew, you saved me...again

Francesco

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Garbage collector: Out of memory (when running AWT/SWING code  on   arm-linux)
  2008-06-06 16:45 ` Andrew Haley
@ 2008-06-06 17:54   ` Andrew Haley
  0 siblings, 0 replies; 12+ messages in thread
From: Andrew Haley @ 2008-06-06 17:54 UTC (permalink / raw)
  To: ffileppo; +Cc: java

Andrew Haley wrote:
> ffileppo wrote:
>>> Hi guys,
>>>
>>> I'm getting the following error:
>>>
>>> GC Warning: Out of Memory! Returning NIL!
>>>
>>> when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)
>>>
>>> For example this code:
>>>
>>> import javax.swing.*;
>>>
>>> public class SimpleFrame {
>>>   public static void main(String args[]) {
>>>     System.out.println("Check 1");
>>>     JFrame f = new JFrame("Simple Frame");
>>>     System.out.println("Check 2");
>>>     f.setSize(200,100);
>>>     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>>>     f.setVisible(true);
>>>   }
>>> }
>>>
>>> gives out of memory error after printing "Check 1".
>>> Trying with some other code I can see that the first AWT/SWING call causes this error.
>>>
>>> Any idea to fix / debug this problem?
> 
> I think I've found it.  The unwinder is infinitely looping 'til it runs out
> of memory.

And here it is:

(gdb) x state->frames[23].start_ip
0x40c13ac0 <_Jv_JNI_FindClass>: 0xe1a0c00d
(gdb) x state->frames[24].start_ip
0x40017f78 <__udivdi3>: 0xe92d4ff0
(gdb) x state->frames[22].start_ip
0x40c4c918 <java.lang.Class.initializeClass()void>:  0xe92d41f0
(gdb) x state->frames[23].start_ip
0x40c13ac0 <_Jv_JNI_FindClass>: 0xe1a0c00d
(gdb) x state->frames[20].start_ip
0x40c1653c <_Jv_Linker.verify_class(java.lang.Class)>: 0xe52de004
(gdb) x state->frames[21].start_ip
0x40c17ce8 <_Jv_Linker.wait_for_state(java.lang.Class, int)>:      0xe92d47f0
(gdb) x state->frames[22].start_ip
0x40c4c918 <java.lang.Class.initializeClass()void>:  0xe92d41f0
(gdb) x state->frames[23].start_ip
0x40c13ac0 <_Jv_JNI_FindClass>: 0xe1a0c00d
(gdb) x state->frames[24].start_ip
0x40017f78 <__udivdi3>: 0xe92d4ff0
(gdb) x state->frames[25].start_ip
0x4176b834 <GC_generic_push_regs>:      0xe59f3010

So here's the badness: the frame above _Jv_JNI_FindClass is wrong.  Here it's
found to be __udivdi3 but in reality it should be
Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit.  I wonder if
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
has bad unwinder data.  It's also possible that _Jv_JNI_FindClass has bad
unwinder data.

Anyway, the kludge I suggested should work.

Andrew.




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Garbage collector: Out of memory (when running AWT/SWING code  on   arm-linux)
@ 2008-06-06 17:53 ffileppo
  0 siblings, 0 replies; 12+ messages in thread
From: ffileppo @ 2008-06-06 17:53 UTC (permalink / raw)
  To: aph; +Cc: java

> ffileppo wrote:
> >> Hi guys,
> >>
> >> I'm getting the following error:
> >>
> >> GC Warning: Out of Memory! Returning NIL!
> >>
> >> when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)
> >>
> >> For example this code:
> >>
> >> import javax.swing.*;
> >>
> >> public class SimpleFrame {
> >>   public static void main(String args[]) {
> >>     System.out.println("Check 1");
> >>     JFrame f = new JFrame("Simple Frame");
> >>     System.out.println("Check 2");
> >>     f.setSize(200,100);
> >>     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
> >>     f.setVisible(true);
> >>   }
> >> }
> >>
> >> gives out of memory error after printing "Check 1".
> >> Trying with some other code I can see that the first AWT/SWING call causes this error.
> >>
> >> Any idea to fix / debug this problem?
>
> I think I've found it.  The unwinder is infinitely looping 'til it runs out
> of memory.
>
> Some library somewhere has probably has invalid unwind information.
>
> Add this line to _Jv_StackTrace::UnwindTraceFn in stacktrace.cc:
>
> *** stacktrace.cc~      Tue Sep  4 19:00:31 2007
> --- stacktrace.cc       Fri Jun  6 17:42:25 2008
> ***************
> *** 110,115 ****
> --- 110,117 ----
>     // Check if the trace buffer needs to be extended.
>     if (pos == state->length)
>       {
> +       return _URC_END_OF_STACK;
> +
>         int newLength = state->length * 2;
>         void *newFrames = _Jv_AllocBytes (newLength * sizeof(_Jv_StackFrame));
>         memcpy (newFrames, state->frames, state->length * sizeof(_Jv_StackFrame));
>
> This will prevent more than 100 stack frames from being traced.
>
> Andrew.
>


Thank you Andrew,
I'll try this in the next days and I'll let you know.

Francesco

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Garbage collector: Out of memory (when running AWT/SWING code   on   arm-linux)
  2008-06-06 16:49     ` Andrew Haley
@ 2008-06-06 16:50       ` David Daney
  0 siblings, 0 replies; 12+ messages in thread
From: David Daney @ 2008-06-06 16:50 UTC (permalink / raw)
  To: Andrew Haley; +Cc: ffileppo, java

Andrew Haley wrote:
> David Daney wrote:
>> Andrew Haley wrote:
> 
>> May I point you to:
>>
>> http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcj/Invoking-gc_002danalyze.html
>>
>> We wrote it specifically to shed light on this type of problem.
> 
> Thanks, but it wouldn't help here because the call never returns.
> There's nowhere to invoke GCInfo.enumerate().

gnu.gcj.util.GCInfo.setOOMDump(String namePrefix)


David Daney

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Garbage collector: Out of memory (when running AWT/SWING code   on   arm-linux)
  2008-06-06 16:44   ` David Daney
@ 2008-06-06 16:49     ` Andrew Haley
  2008-06-06 16:50       ` David Daney
  0 siblings, 1 reply; 12+ messages in thread
From: Andrew Haley @ 2008-06-06 16:49 UTC (permalink / raw)
  To: David Daney; +Cc: ffileppo, java

David Daney wrote:
> Andrew Haley wrote:

> May I point you to:
> 
> http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcj/Invoking-gc_002danalyze.html
> 
> We wrote it specifically to shed light on this type of problem.

Thanks, but it wouldn't help here because the call never returns.
There's nowhere to invoke GCInfo.enumerate().

Andrew.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Garbage collector: Out of memory (when running AWT/SWING code  on   arm-linux)
  2008-06-06 13:59 ffileppo
  2008-06-06 14:10 ` Garbage " Andrew Haley
@ 2008-06-06 16:45 ` Andrew Haley
  2008-06-06 17:54   ` Andrew Haley
  1 sibling, 1 reply; 12+ messages in thread
From: Andrew Haley @ 2008-06-06 16:45 UTC (permalink / raw)
  To: ffileppo; +Cc: java

ffileppo wrote:
>> Hi guys,
>>
>> I'm getting the following error:
>>
>> GC Warning: Out of Memory! Returning NIL!
>>
>> when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)
>>
>> For example this code:
>>
>> import javax.swing.*;
>>
>> public class SimpleFrame {
>>   public static void main(String args[]) {
>>     System.out.println("Check 1");
>>     JFrame f = new JFrame("Simple Frame");
>>     System.out.println("Check 2");
>>     f.setSize(200,100);
>>     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>>     f.setVisible(true);
>>   }
>> }
>>
>> gives out of memory error after printing "Check 1".
>> Trying with some other code I can see that the first AWT/SWING call causes this error.
>>
>> Any idea to fix / debug this problem?

I think I've found it.  The unwinder is infinitely looping 'til it runs out
of memory.

Some library somewhere has probably has invalid unwind information.

Add this line to _Jv_StackTrace::UnwindTraceFn in stacktrace.cc:

*** stacktrace.cc~      Tue Sep  4 19:00:31 2007
--- stacktrace.cc       Fri Jun  6 17:42:25 2008
***************
*** 110,115 ****
--- 110,117 ----
    // Check if the trace buffer needs to be extended.
    if (pos == state->length)
      {
+       return _URC_END_OF_STACK;
+
        int newLength = state->length * 2;
        void *newFrames = _Jv_AllocBytes (newLength * sizeof(_Jv_StackFrame));
        memcpy (newFrames, state->frames, state->length * sizeof(_Jv_StackFrame));

This will prevent more than 100 stack frames from being traced.

Andrew.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Garbage collector: Out of memory (when running AWT/SWING code   on   arm-linux)
  2008-06-06 14:10 ` Garbage " Andrew Haley
@ 2008-06-06 16:44   ` David Daney
  2008-06-06 16:49     ` Andrew Haley
  0 siblings, 1 reply; 12+ messages in thread
From: David Daney @ 2008-06-06 16:44 UTC (permalink / raw)
  To: Andrew Haley; +Cc: ffileppo, java

Andrew Haley wrote:
> ffileppo wrote:
>>> Hi guys,
>>>
>>> I'm getting the following error:
>>>
>>> GC Warning: Out of Memory! Returning NIL!
>>>
>>> when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)
>>>
>>> For example this code:
>>>
>>> import javax.swing.*;
>>>
>>> public class SimpleFrame {
>>>   public static void main(String args[]) {
>>>     System.out.println("Check 1");
>>>     JFrame f = new JFrame("Simple Frame");
>>>     System.out.println("Check 2");
>>>     f.setSize(200,100);
>>>     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>>>     f.setVisible(true);
>>>   }
>>> }
>>>
>>> gives out of memory error after printing "Check 1".
>>> Trying with some other code I can see that the first AWT/SWING call causes this error.
>>>
>>> Any idea to fix / debug this problem?
>>>
>>> I've read somewhere to look at stack trace and GC log but I don't know where to get these info.
>>>
>>> I'm using gcc 4.3.0, compiled for arm-linux-gnueabi with GTK AWT peer support.
>>>
>>> When I try to run AWT/SWING code on my embedded box I have like 110Mb of free ram (with Xorg and matchbox or xfce running).
>>>
>>> Thank you,
>>>
>>> Francesco
>>
>> Hi again,
>>
>> I've tried defining GC_PRINT_STATS and GC_DUMP_REGULARLY to get some debug info.
>>
>> However I can't understand what's going wrong (please see my log at end).
>>
>> Any advice? I'm really running out of ideas...
>>
>> Could anyone confirm the faesibility of running a GTK AWT peer application on an embedded system with about 100Mb of free ram?
>>
>> Here is my log:
> 
> Look at this:
> 
> Collection 4 finished ---> heapsize = 64262144 bytes
> 
> That's huge, and it's probably real.
> 
> I'm trying to run your test example on my ARM GNU/Linux box but it won't let me
> log in.  I suspect it's checking its disks.  Later I'll tell you how I get on.
> 
> Andrew.

May I point you to:

http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcj/Invoking-gc_002danalyze.html

We wrote it specifically to shed light on this type of problem.

David Daney

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Garbage collector: Out of memory (when running AWT/SWING code  on   arm-linux)
  2008-06-06 13:59 ffileppo
@ 2008-06-06 14:10 ` Andrew Haley
  2008-06-06 16:44   ` David Daney
  2008-06-06 16:45 ` Andrew Haley
  1 sibling, 1 reply; 12+ messages in thread
From: Andrew Haley @ 2008-06-06 14:10 UTC (permalink / raw)
  To: ffileppo; +Cc: java

ffileppo wrote:
>> Hi guys,
>>
>> I'm getting the following error:
>>
>> GC Warning: Out of Memory! Returning NIL!
>>
>> when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)
>>
>> For example this code:
>>
>> import javax.swing.*;
>>
>> public class SimpleFrame {
>>   public static void main(String args[]) {
>>     System.out.println("Check 1");
>>     JFrame f = new JFrame("Simple Frame");
>>     System.out.println("Check 2");
>>     f.setSize(200,100);
>>     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>>     f.setVisible(true);
>>   }
>> }
>>
>> gives out of memory error after printing "Check 1".
>> Trying with some other code I can see that the first AWT/SWING call causes this error.
>>
>> Any idea to fix / debug this problem?
>>
>> I've read somewhere to look at stack trace and GC log but I don't know where to get these info.
>>
>> I'm using gcc 4.3.0, compiled for arm-linux-gnueabi with GTK AWT peer support.
>>
>> When I try to run AWT/SWING code on my embedded box I have like 110Mb of free ram (with Xorg and matchbox or xfce running).
>>
>> Thank you,
>>
>> Francesco
> 
> 
> Hi again,
> 
> I've tried defining GC_PRINT_STATS and GC_DUMP_REGULARLY to get some debug info.
> 
> However I can't understand what's going wrong (please see my log at end).
> 
> Any advice? I'm really running out of ideas...
> 
> Could anyone confirm the faesibility of running a GTK AWT peer application on an embedded system with about 100Mb of free ram?
> 
> Here is my log:

Look at this:

Collection 4 finished ---> heapsize = 64262144 bytes

That's huge, and it's probably real.

I'm trying to run your test example on my ARM GNU/Linux box but it won't let me
log in.  I suspect it's checking its disks.  Later I'll tell you how I get on.

Andrew.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Garbage collector: Out of memory (when running AWT/SWING code on   arm-linux)
@ 2008-06-03 18:43 ffileppo
  0 siblings, 0 replies; 12+ messages in thread
From: ffileppo @ 2008-06-03 18:43 UTC (permalink / raw)
  To: java

Hi guys,

I'm getting the following error:

GC Warning: Out of Memory! Returning NIL!

when I try to run any AWT/SWING code compiled with arm-linux-gcj on my embedded box (PXA270 - 128MB Ram). (Other code just runs fine)

For example this code:

import javax.swing.*;

public class SimpleFrame {
  public static void main(String args[]) {
    System.out.println("Check 1");
    JFrame f = new JFrame("Simple Frame");
    System.out.println("Check 2");
    f.setSize(200,100);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
  }
}

gives out of memory error after printing "Check 1".
Trying with some other code I can see that the first AWT/SWING call causes this error.

Any idea to fix / debug this problem?

I've read somewhere to look at stack trace and GC log but I don't know where to get these info.

I'm using gcc 4.3.0, compiled for arm-linux-gnueabi with GTK AWT peer support.

When I try to run AWT/SWING code on my embedded box I have like 110Mb of free ram (with Xorg and matchbox or xfce running).

Thank you,

Francesco

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2008-09-09  9:46 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-09-09  9:31 Garbage collector: Out of memory (when running AWT/SWING code on arm-linux) ffileppo
2008-09-09  9:46 ` Andrew Haley
  -- strict thread matches above, loose matches on Subject: below --
2008-06-09  8:13 ffileppo
2008-06-09  9:20 ` Andrew Haley
2008-06-06 17:53 ffileppo
2008-06-06 13:59 ffileppo
2008-06-06 14:10 ` Garbage " Andrew Haley
2008-06-06 16:44   ` David Daney
2008-06-06 16:49     ` Andrew Haley
2008-06-06 16:50       ` David Daney
2008-06-06 16:45 ` Andrew Haley
2008-06-06 17:54   ` Andrew Haley
2008-06-03 18:43 ffileppo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).