Hi Sean,

The first I spotted watching your stacktrace is that your are mixing
debug with release libraries. AFAIK on windows mixing debug and
release always gives problems, so the best you can do if you want to
debug your code is build osg in debug or build your code in release
with debug symbols.

Cheers,
Rafa.


2012/5/9 Sean K <[email protected]>:
> Hi,
>
> I took a look at your code.
>
> It looks good.   Since the *.h headers from OSG and VPB DLLs are not
> intended for java JNI invocation, I see that your code has built is
> own DLL which in turn uses the OSG runtimes.
>
> I am taking this similar approach -- as follow...
>
> Since I want to do what osgdem.exe does but want to make that
> accessible from a java application, I wrote a C DLL on Windows that is
> invoked by my java class.
>
> When that DLL has all the includes and DLL lib imported linked to it
> (same build dependency as osgdem.exe -- but it is a DLL instead of a
> EXE), the java class can invoke that function in that DLL -- i put
> some test code in that DLL.
>
> Then I copied most of the code from osgdem.cpp into the main function
> of my DLL.
>
> I re-initialize the arguments etc from my entry point so that it
> mimics osgdem.cpp as much as possible -- at least at this version.
>
> Now, when I invoke my DLL which should do the same essential thing
> that osgdem.exe does, it encounters a java hotspot exception access
> violation.
>
> here is the content of that log file it is generated by jvm.
>
> (i hide the name of the company and myself to protect the privacy)
>
>
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x5ca957aa, pid=2036, 
> tid=5660
> #
> # JRE version: 6.0_32-b05
> # Java VM: Java HotSpot(TM) Client VM (20.7-b02 mixed mode windows-x86 )
> # Problematic frame:
> # C  [MSVCR100D.dll+0x1157aa]
> #
> # If you would like to submit a bug report, please visit:
> #   http://java.sun.com/webapps/bugreport/crash.jsp
> # The crash happened outside the Java Virtual Machine in native code.
> # See problematic frame for where to report the bug.
> #
>
> ---------------  T H R E A D  ---------------
>
> Current thread (0x0211a800):  JavaThread "main" [_thread_in_native,
> id=5660, stack(0x00220000,0x00270000)]
>
> siginfo: ExceptionCode=0xc0000005, reading address 0xccccccc0
>
> Registers:
> EAX=0xccccccac, EBX=0x44b618c8, ECX=0xccccccac, EDX=0x00000004
> ESP=0x0026e788, EBP=0x0026e7b4, ESI=0x0026ea8c, EDI=0x0026e898
> EIP=0x5ca957aa, EFLAGS=0x00010286
>
> Top of Stack: (sp=0x0026e788)
> 0x0026e788:   4fc8e4ec 0026e898 0026ea8c 44b618c8
> 0x0026e798:   ccccccac fffffffe 0026e33c 0026ea78
> 0x0026e7a8:   5ca99320 13430fa0 00000000 0026e898
> 0x0026e7b8:   5e7d271c cccccccc 0026e98c 0026ea8c
> 0x0026e7c8:   44b618c8 cccccccc cccccccc cccccccc
> 0x0026e7d8:   cccccccc cccccccc cccccccc cccccccc
> 0x0026e7e8:   cccccccc cccccccc cccccccc cccccccc
> 0x0026e7f8:   cccccccc cccccccc cccccccc cccccccc
>
> Instructions: (pc=0x5ca957aa)
> 0x5ca9578a:   00 00 00 6a 04 e8 5c 3f f3 ff 83 c4 04 c7 45 fc
> 0x5ca9579a:   00 00 00 00 8b 45 08 83 e8 20 89 45 e4 8b 4d e4
> 0x5ca957aa:   8b 51 14 81 e2 ff ff 00 00 83 fa 04 74 41 8b 45
> 0x5ca957ba:   e4 83 78 14 01 74 38 8b 4d e4 8b 51 14 81 e2 ff
>
>
> Register to memory mapping:
>
> EAX=0xccccccac is an unknown value
> EBX=0x44b618c8 is an oop
> {method}
>  - klass: {other class}
> ECX=0xccccccac is an unknown value
> EDX=0x00000004 is an unknown value
> ESP=0x0026e788 is pointing into the stack for thread: 0x0211a800
> EBP=0x0026e7b4 is pointing into the stack for thread: 0x0211a800
> ESI=0x0026ea8c is pointing into the stack for thread: 0x0211a800
> EDI=0x0026e898 is pointing into the stack for thread: 0x0211a800
>
>
> Stack: [0x00220000,0x00270000],  sp=0x0026e788,  free space=313k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native 
> code)
> C  [MSVCR100D.dll+0x1157aa]  operator delete+0x5a
> C  [libosggen.dll+0x2271c]  std::allocator<char>::deallocate+0x2c
> C  [libosggen.dll+0x208f5]
> std::basic_string<char,std::char_traits<char>,std::allocator<char>
>>::_Tidy+0x75
> C  [libosggen.dll+0x197d5]
> std::basic_string<char,std::char_traits<char>,std::allocator<char>
>>::~basic_string<char,std::char_traits<char>,std::allocator<char>
>>+0x55
> C  [libosggen.dll+0x173a9]  StartOsgDem+0x1ec9
> C  [libosggen.dll+0x29244]
> Java_foo_osgjni_core_GeneratorOSGImpl_startOsgDem+0xe4
> j  
> com.foo.osgjni.core.GeneratorOSGImpl.startOsgDem(DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z+0
> j  
> com.foo.osgjni.core.GeneratorOSGImpl.start(Ljava/io/File;Ljava/io/File;Ljava/io/File;Lcom/foo/osgjni/core/IOSGHandler;)Z+24
> j  com.foo.osgjni.core.GeneratorOSGImplTest.main([Ljava/lang/String;)V+67
> v  ~StubRoutines::call_stub
> V  [jvm.dll+0xfad4b]
> V  [jvm.dll+0x18c421]
> V  [jvm.dll+0xfadcd]
> V  [jvm.dll+0x95836]
> V  [jvm.dll+0x9d778]
> V  [jvm.dll+0xaf22b]
> C  [javaw.exe+0x2155]
> C  [javaw.exe+0x8614]
> C  [kernel32.dll+0x1339a]  BaseThreadInitThunk+0x12
> C  [ntdll.dll+0x39ed2]  RtlInitializeExceptionChain+0x63
> C  [ntdll.dll+0x39ea5]  RtlInitializeExceptionChain+0x36
>
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
> j  
> com.foo.osgjni.core.GeneratorOSGImpl.startOsgDem(DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z+0
> j  
> com.foo.osgjni.core.GeneratorOSGImpl.start(Ljava/io/File;Ljava/io/File;Ljava/io/File;Lcom/foo/osgjni/core/IOSGHandler;)Z+24
> j  com.foo.osgjni.core.GeneratorOSGImplTest.main([Ljava/lang/String;)V+67
> v  ~StubRoutines::call_stub
>
> ---------------  P R O C E S S  ---------------
>
> Java Threads: ( => current thread )
>  0x02991400 JavaThread "Low Memory Detector" daemon [_thread_blocked,
> id=2704, stack(0x4acf0000,0x4ad40000)]
>  0x02982000 JavaThread "C1 CompilerThread0" daemon [_thread_blocked,
> id=4108, stack(0x4ac60000,0x4acb0000)]
>  0x02981000 JavaThread "Attach Listener" daemon [_thread_blocked,
> id=3516, stack(0x4abd0000,0x4ac20000)]
>  0x0297e000 JavaThread "Signal Dispatcher" daemon [_thread_blocked,
> id=6104, stack(0x4ab40000,0x4ab90000)]
>  0x0294e000 JavaThread "Finalizer" daemon [_thread_blocked, id=4320,
> stack(0x02120000,0x02170000)]
>  0x02949800 JavaThread "Reference Handler" daemon [_thread_blocked,
> id=5636, stack(0x00820000,0x00870000)]
> =>0x0211a800 JavaThread "main" [_thread_in_native, id=5660,
> stack(0x00220000,0x00270000)]
>
> Other Threads:
>  0x02944400 VMThread [stack: 0x00580000,0x005d0000] [id=5916]
>  0x02992c00 WatcherThread [stack: 0x4ad80000,0x4add0000] [id=2540]
>
> VM state:not at safepoint (normal execution)
>
> VM Mutex/Monitor currently owned by a thread: None
>
> Heap
>  def new generation   total 157248K, used 2795K [0x049b0000,
> 0x0f450000, 0x19f00000)
>  eden space 139776K,   2% used [0x049b0000, 0x04c6ae28, 0x0d230000)
>  from space 17472K,   0% used [0x0d230000, 0x0d230000, 0x0e340000)
>  to   space 17472K,   0% used [0x0e340000, 0x0e340000, 0x0f450000)
>  tenured generation   total 349568K, used 0K [0x19f00000, 0x2f460000,
> 0x449b0000)
>   the space 349568K,   0% used [0x19f00000, 0x19f00000, 0x19f00200, 
> 0x2f460000)
>  compacting perm gen  total 12288K, used 1736K [0x449b0000,
> 0x455b0000, 0x489b0000)
>   the space 12288K,  14% used [0x449b0000, 0x44b620d8, 0x44b62200, 0x455b0000)
> No shared spaces configured.
>
> Code Cache  [0x029b0000, 0x02a20000, 0x049b0000)
>  total_blobs=122 nmethods=7 adapters=60 free_code_cache=33102592
> largest_free_block=0
>
> Dynamic libraries:
> 0x00400000 - 0x00425000         C:\DEV\BIN\Java\jdk1.6.0_32\bin\javaw.exe
> 0x77570000 - 0x776f0000         C:\Windows\SysWOW64\ntdll.dll
> 0x75f90000 - 0x760a0000         C:\Windows\syswow64\kernel32.dll
> 0x75120000 - 0x75166000         C:\Windows\syswow64\KERNELBASE.dll
> 0x74c00000 - 0x74c71000         C:\Windows\SysWOW64\SYSFER.DLL
> 0x75260000 - 0x75300000         C:\Windows\syswow64\ADVAPI32.dll
> 0x76c20000 - 0x76ccc000         C:\Windows\syswow64\msvcrt.dll
> 0x76ad0000 - 0x76ae9000         C:\Windows\SysWOW64\sechost.dll
> 0x760a0000 - 0x76190000         C:\Windows\syswow64\RPCRT4.dll
> 0x750c0000 - 0x75120000         C:\Windows\syswow64\SspiCli.dll
> 0x750b0000 - 0x750bc000         C:\Windows\syswow64\CRYPTBASE.dll
> 0x76d50000 - 0x76e50000         C:\Windows\syswow64\USER32.dll
> 0x76e50000 - 0x76ee0000         C:\Windows\syswow64\GDI32.dll
> 0x767a0000 - 0x767aa000         C:\Windows\syswow64\LPK.dll
> 0x761c0000 - 0x7625d000         C:\Windows\syswow64\USP10.dll
> 0x76530000 - 0x76590000         C:\Windows\system32\IMM32.DLL
> 0x76af0000 - 0x76bbc000         C:\Windows\syswow64\MSCTF.dll
> 0x7c340000 - 0x7c396000         
> C:\DEV\BIN\Java\jdk1.6.0_32\jre\bin\msvcr71.dll
> 0x6d8c0000 - 0x6db6f000         
> C:\DEV\BIN\Java\jdk1.6.0_32\jre\bin\client\jvm.dll
> 0x74820000 - 0x74852000         C:\Windows\system32\WINMM.dll
> 0x736b0000 - 0x736fc000         C:\Windows\system32\apphelp.dll
> 0x6d870000 - 0x6d87c000         C:\DEV\BIN\Java\jdk1.6.0_32\jre\bin\verify.dll
> 0x6d3d0000 - 0x6d3ef000         C:\DEV\BIN\Java\jdk1.6.0_32\jre\bin\java.dll
> 0x6d8b0000 - 0x6d8bf000         C:\DEV\BIN\Java\jdk1.6.0_32\jre\bin\zip.dll
> 0x5e7b0000 - 0x5e7f7000         C:\DEV\src\test\Debug\libosggen.dll
> 0x5e160000 - 0x5e6c9000         C:\Program 
> Files\VIRTUALPLANETBUILDER\bin\vpb.dll
> 0x751c0000 - 0x751f5000         C:\Windows\syswow64\WS2_32.dll
> 0x75f50000 - 0x75f56000         C:\Windows\syswow64\NSI.dll
> 0x5df60000 - 0x5e156000         C:\Program 
> Files\OpenSceneGraph\bin\osg80-osg.dll
> 0x5df50000 - 0x5df5a000         C:\Program
> Files\OpenSceneGraph\bin\ot12-OpenThreads.dll
> 0x74e10000 - 0x74ecf000         C:\Windows\system32\MSVCR100.dll
> 0x6ee80000 - 0x6eee9000         C:\Windows\system32\MSVCP100.dll
> 0x5de80000 - 0x5df48000         C:\Windows\system32\OPENGL32.dll
> 0x5de50000 - 0x5de72000         C:\Windows\system32\GLU32.dll
> 0x4afd0000 - 0x4b0b7000         C:\Windows\system32\DDRAW.dll
> 0x6e9b0000 - 0x6e9b6000         C:\Windows\system32\DCIMAN32.dll
> 0x76260000 - 0x763fd000         C:\Windows\syswow64\SETUPAPI.dll
> 0x75f60000 - 0x75f87000         C:\Windows\syswow64\CFGMGR32.dll
> 0x76f80000 - 0x7700f000         C:\Windows\syswow64\OLEAUT32.dll
> 0x77010000 - 0x7716c000         C:\Windows\syswow64\ole32.dll
> 0x751a0000 - 0x751b2000         C:\Windows\syswow64\DEVOBJ.dll
> 0x71250000 - 0x71263000         C:\Windows\system32\dwmapi.dll
> 0x5dd30000 - 0x5de43000         C:\Program 
> Files\OpenSceneGraph\bin\osg80-osgUtil.dll
> 0x5dca0000 - 0x5dd0d000         C:\Program 
> Files\OpenSceneGraph\bin\osg80-osgSim.dll
> 0x5d900000 - 0x5d943000         C:\Program 
> Files\OpenSceneGraph\bin\osg80-osgText.dll
> 0x5cf40000 - 0x5cff5000         C:\Program 
> Files\OpenSceneGraph\bin\osg80-osgDB.dll
> 0x4b0c0000 - 0x4b0d8000         
> C:\projects\OpenSceneGraph-3.0.1\3rdParty\bin\zlib1.dll
> 0x74b50000 - 0x74bf3000
>        
> C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCR90.dll
> 0x5ce60000 - 0x5ce91000         C:\Program
> Files\OpenSceneGraph\bin\osg80-osgTerrain.dll
> 0x5ce30000 - 0x5ce5a000         C:\Program 
> Files\OpenSceneGraph\bin\osg80-osgFX.dll
> 0x5cda0000 - 0x5ce24000         C:\Program 
> Files\OpenSceneGraph\bin\osg80-osgViewer.dll
> 0x5cd60000 - 0x5cd9e000         C:\Program 
> Files\OpenSceneGraph\bin\osg80-osgGA.dll
> 0x5cb00000 - 0x5cbb7000         C:\Windows\system32\MSVCP100D.dll
> 0x5c980000 - 0x5caf2000         C:\Windows\system32\MSVCR100D.dll
> 0x5dc80000 - 0x5dc9d000         C:\Program
> Files\OpenSceneGraph\bin\osgPlugins-3.0.1\osgdb_osg.dll
> 0x76400000 - 0x76405000         C:\Windows\system32\PSAPI.DLL
>
> VM Arguments:
> jvm_args: -Xcheck:jni -Xms512m -Xmx1024m -Dfile.encoding=Cp1252
> java_command: com.foo.osgjni.core.GeneratorOSGImplTest
> Launcher Type: SUN_STANDARD
>
> Environment Variables:
> JAVA_HOME=C:\DEV\BIN\Java\jdk1.6.0_32
> CLASSPATH=.;C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip
> PATH=C:/DEV/BIN/Java/jdk1.6.0_32/bin/../jre/bin/client;C:/DEV/BIN/Java/jdk1.6.0_32/bin/../jre/bin;C:/DEV/BIN/Java/jdk1.6.0_32/bin/../jre/lib/i386;C:\Program
> Files (x86)\NVIDIA
> Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program
> Files\Intel\DMIX;C:\DEV\BIN\apache-ant-1.8.2\bin;C:\Program Files
> (x86)\QuickTime\QTSystem\;C:\DEV\BIN\apache-maven-3.0.3\bin;C:\DEV\BIN\Java\jdk1.6.0_32\bin;C:\DEV\BIN\Java\jdk1.6.0_32\jre\bin;C:\MinGW\bin;c:\Program
> Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program
> Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft
> SQL 
> Server\100\DTS\Binn\;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program
> Files\TortoiseSVN\bin;C:\DEV\BIN\Geoinformatica\bin;OSGHOME\bin;OSGHOME\lib;OSGHOME;C:\Program
> Files (x86)\NVIDIA
> Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program
> Files\Intel\DMIX;C:\DEV\BIN\apache-ant-1.8.2\bin;C:\Program Files
> (x86)\QuickTime\QTSystem\;C:\DEV\BIN\apache-maven-3.0.3\bin;C:\DEV\BIN\Java\jdk1.6.0_32\bin;C:\DEV\BIN\Java\jdk1.6.0_32\jre\bin;C:\MinGW\bin;c:\Program
> Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program
> Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft
> SQL 
> Server\100\DTS\Binn\;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program
> Files\TortoiseSVN\bin;OSGHOME\bin;OSGHOME\lib;OSGHOME;C:\Program
> Files\OpenSceneGraph\bin;C:\projects\OpenSceneGraph-3.0.1\3rdParty\bin;C:\Program
> Files\VIRTUALPLANETBUILDER\bin;C:\DEV\BIN\eclipse-indigo-32bit;
> USERNAME=foo
> OS=Windows_NT
> PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 37 Stepping 5, GenuineIntel
>
>
>
> ---------------  S Y S T E M  ---------------
>
> OS: Windows 7 , 64 bit Build 7601 Service Pack 1
>
> CPU:total 4 (2 cores per cpu, 2 threads per core) family 6 model 37
> stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1,
> sse4.2, popcnt, ht
>
> Memory: 4k page, physical 4052376k(1527824k free), swap 8102904k(4747124k 
> free)
>
> vm_info: Java HotSpot(TM) Client VM (20.7-b02) for windows-x86 JRE
> (1.6.0_32-b05), built on Apr  5 2012 13:50:34 by "java_re" with MS
> VC++ 7.1 (VS2003)
>
> time: Tue May 08 17:15:35 2012
> elapsed time: 0 seconds
>
>
>
>
>
> On Fri, May 4, 2012 at 4:02 PM, Rafa Gaitan <[email protected]> wrote:
>> Hi Sean,
>>
>> We have made lot of JNI stuff in osgVirtualPlanets. Is a the GIS
>> library for gvSIG3D that we developed.
>>
>> svn co https://devel.gvsig.org/svn/osgvp/trunk
>>
>> The wrappers are inside wrappers directory. Is not exactly what are
>> you looking for, but maybe you find inspiration in the code.
>>
>> Cheers,
>> Rafa.
>>
>>
>> 2012/5/5 Sean K <[email protected]>:
>>> I am looking to build a Java wrapper with JNI around the code which
>>> basically exists inside of osgdem.cpp.
>>>
>>> The bulk of that code resides in vpb.dll and osgDB.dll.
>>>
>>> Anybody tried this?   I am guessing others have already done this.
>>>
>>> I also want to send back the console output back to the java caller
>>> via a java callback
>>>
>>> basically,
>>>
>>> if I wrote a JNI class named OsgDem.java
>>>
>>> I would write code my OsgDemTest.java like this:
>>>
>>>       class MyOsgHandler implements OsgHander {
>>>
>>>           @Override
>>>            void OnStatus (String output) {
>>>                  System.out.println(output);
>>>            }
>>>
>>>            @Override
>>>            void OnEnd (boolean success, String resultMsg) {
>>>                   if (success) {
>>>                          System.out.println("good");
>>>                   } else {
>>>                           System.out.println("bad");
>>>                   }
>>>            }
>>>       }
>>>
>>>        @Test
>>>        public void testOsgdem() {
>>>                ....
>>>                Properties global = new Properties();
>>>
>>>                global.load("osgdem.properties");
>>>                OsgDem generator = new OsgDem(global);
>>>                generator.start(handler, inputTerrainPath,
>>> inputTexturePath, outputFilePath);
>>>
>>>        }
>>>
>>>
>>> Anybody have any JNI code that I can start with to build my OsdDem?
>>> _______________________________________________
>>> osg-users mailing list
>>> [email protected]
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>>
>> --
>> Rafael Gaitán Linares
>> CTO at Mirage Technologies S.L - http://www.mirage-tech.com
>> gvSIG3D Developer - http://gvsig3d.blogspot.com
>> _______________________________________________
>> osg-users mailing list
>> [email protected]
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org



-- 
Rafael Gaitán Linares
CTO at Mirage Technologies S.L - http://www.mirage-tech.com
gvSIG3D Developer - http://gvsig3d.blogspot.com
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to