[kaffe] A question about "JNI_OnLoad"

embstudy at eyou.com embstudy at eyou.com
Fri Aug 13 07:28:27 PDT 2004


Hello

I finally clean the NPE using gdb. :)
Till now, I am not sure where exactly the qtopia influence kaffe, but now I
could run a plain text helloworld in the embeddedkonsole of qtopia now.
The NPE was due to some initProperties,
in function(System.c) :
struct Hjava_util_Properties*
java_lang_System_initProperties(struct Hjava_util_Properties* p)
...
#if defined(HAVE_LC_MESSAGES)
	locale = setlocale (LC_MESSAGES, "");

	tmp = strchr (locale, '_');
#else
	tmp = NULL;
#endif
...
And we just closed the HAVE_LC_MESSAGE macro in config.in to make it work.

But now we still couldn't pass the AWT test...
Maybe we have post the similar question many times,
but I still hope some could give me a hand as soon as possible.
***************************************************************
Qtopia1.7 based on qt-2.3.7
CVS-kaffe-0811
Xscale-arm box
----------------------------------
in the embedded console, I got:
----------------------------------------------------------
(gdb) r                                                                       
 
Starting program: /cvs/xscale/jre/bin/kaffe-bin -Xkaffe-qt-awt -cp /cvs/test

-vmdebug INIT,AWT M
ptrace: bogus breakpoint trap                                                 
 
initCollector()                                                               
 
initCollector() done                                                          
 
initNativeThreads(0x10000)                                                    
 
Detected stackSize 1048576                                                    
 
                                                                              
 
Program received signal SIGSEGV, Segmentation fault.                          
 
0x400a9800 in detectStackBoundaries ()                                        
 
   from /cvs/xscale/jre/lib/arm/libkaffevm-1.1.x-cvs.so                       
 
(gdb) c                                                                       
 
Continuing.                                                                   
 
initNativeThreads(0x10000) done                                               
 
utf8ConstInit()                                                               
 
utf8ConstInit() done                                                          
 
initClasspath()                                                               
 
initClasspath() done, got
/cvs/xscale/jre/lib/kaffeawt.jar:/cvs/xscale/jre/lib/r
initNative()                                                                  
 
got lpath
/cvs/xscale/jre/lib/arm:/cvs/xscale/lib:/usr/local/lib:/usr/lib:/lib:b
ptrace: bogus breakpoint trap                                                 
 
initNative() done                                                             
 
create names and signatures                                                   
 
done                                                                          
 
initTypes()                                                                   
 
initTypes() done                                                              
 
initBaseClasses()                                                             
 
initBaseClasses() done                                                        
 
finishTypes()                                                                 
 
finishTypes() done                                                            
 
initExceptions()                                                              
 
initThreads()                                                                 
 
initThreads() done                                                            
 
                                                                              
 
Program received signal SIG32, Real-time event 32.                            
 
0x40243e6c in sigsuspend () from /lib/libc.so.6                               
 
(gdb) c                                                                       
 
Continuing.                                                                   
 
                                                                              
 
Program received signal SIG32, Real-time event 32.                            
 
0x40243e6c in sigsuspend () from /lib/libc.so.6                               
 
(gdb) c                                                                       
 
Continuing.                                                                   
 
ptrace: bogus breakpoint trap                                                 
 
[tlk.cc:40]                                                                   
 
tlkProperties                                                                 
 
                                                                              
 
QtAWT: Create pluginlibman in libqpe                                          
 
QtAWT: [tlk.cc:78]                                                            
 
QtAWT: qapp initialization.                                                   
 
                                                                              
 
malloc: 128  -> 0x61fac0                                                      
 
calloc: 47,12  -> 0x61fb48                                                    
 
QtAWT: [tlk.cc:89]                                                            
 
QtAWT: tlkInit Done.                                                          
 
                                                                              
 
QtAWT: [tlk.cc:126]                                                           
 
QtAWT: tlkGetScreenWidth                                                      
 
                                                                              
 
QtAWT: [tlk.cc:120]                                                           
 
QtAWT: tlkGetScreenHeight                                                     
 
                                                                              
 
QtAWT: [tlk.cc:111]                                                           
 
QtAWT: tlkGetResolution                                                       
 
                                                                              
 
QtAWT: [tlk.cc:105]                                                           
 
QtAWT: tlkVersion                                                             
 
                                                                              
 
QtAWT: fntInitFont...D                                                        
 
                                                                              
 
QtAWT: fntInitFont...D                                                        
 
                                                                              
 
QtAWT: fntInitFont...D                                                        
 
                                                                              
 
QtAWT: fntInitFont...M                                                        
 
                                                                              
 
QtAWT: fntInitFont...D                                                        
 
                                                                              
 
QtAWT: fntInitFont...D                                                        
 
                                                                              
 
QtAWT: fntInitFont...D                                                        
 
                                                                              
 
QtAWT: fntInitFont...D                                                        
 
                                                                              
 
QtAWT: [fnt.cc:108]                                                           
 
QtAWT: fntGetFixedWidth 0                                                     
 
                                                                              
 
QtAWT: [fnt.cc:150]                                                           
 
QtAWT: fntIsWideFont                                                          
 
                                                                              
 
QtAWT: [tlk.cc:153]                                                           
 
QtAWT: tlkDisplayBanner                                                       
 
                                                                              
 
                                                                              
 
SET VISIBLE                                                                   
 
                                                                              
 
Program received signal SIG32, Real-time event 32.                            
 
0x40243e6c in sigsuspend () from /lib/libc.so.6                               
 
           
(gdb) c                                                                       
 
Continuing.                                                                   
 
QtAWT: [clr.cc:57]                                                            
 
QtAWT: clrGetPixelValue: ffc0c0c0 -> c618                                     
 
                                                                              
 
QtAWT: [wnd.cc:189]                                                           
 
QtAWT: wndCreateFrame                                                         
 
                                                                              
 
QtAWT: [wnd.cc:192]                                                           
 
QtAWT: createFrame( 0x2c957c, 4,24,-8,-28,..) -> 0x621ab0                     
 
                                                                              
 
QtAWT: [wnd.cc:135]                                                           
 
QtAWT: wndSetResizable                                                        
 
                                                                              
 
QtAWT: [wnd.cc:140]                                                           
 
QtAWT: setResizable: 0x621ab0, 1, 4,24,1,1                                    
 
                                                                              
 
QtAWT: [wnd.cc:124]                                                           
 
QtAWT: wndSetTitle                                                            
 
                                                                              
 
QtAWT: [wnd.cc:209]                                                           
 
QtAWT: registerSource: mw=0x621ab0 idx=42                                     
 
                                                                              
 
QtAWT: [evt.cc:286]                                                           
 
QtAWT: evtInit                                                                
 
                                                                              
 
QtAWT: [evt.cc:607]                                                           
 
QtAWT: registerSource( 0x621ab0) -> 42                                        
 
                                                                              
 
QtAWT: [evt.cc:518]                                                           
 
QtAWT: getNextEvent..   

-------------------------------------------------------------------
And then nothing more happened...
The cpu seemed not busy too...
And I couldn't find the END SET VISIBLE, is that the trick??
I tried many test programs, but no difference.
Anyone who had successfully run kaffe awt over qtopia on an arm-box??
What should be my problem??
I am really in a hurry, because the time is flying...

Cheers,
Saw         










More information about the kaffe mailing list