EXCEPTION_FLT_STACK_CHECK in jre1.6.0_01 with JNI
I have developed an application to manage a note acceptor. The manufacturer provided me a dll to communicate the device but my application is written in Java, so I developed the corresponding JNI to send the commands and obtain the answers.
On the other hand, the dll sends some events to indicate the status of the device, so I developed the corresponding inverse JNI to allow the Java application to do the corresponding operations when an event occurs.
If I use j2sdk1.4.2_05 I have no problem, but with jre1.6.0_01 application crashes and I obtain a file with the information bellow, even when events from C arrive to Java. Any idea?
# An unexpected error has been detected by Java Runtime Environment:
# EXCEPTION_FLT_STACK_CHECK (0xc0000092) at pc=0x0097ce69, pid=2964, tid=3168
# Java VM: Java HotSpot(TM) Client VM (1.6.0-b105 mixed mode)
# Problematic frame:
# v ~RuntimeStub::resolve_opt_virtual_call
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
--------------- T H R E A D ---------------
Current thread (0x0b4e4800): JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@1b59919" [_thread_in_Java, id=3168]
siginfo: ExceptionCode=0xc0000092, ExceptionInformation=0x00000000 0x1bf6ec24
Registers:
EAX=0x06b33dc0, EBX=0x06b33dc0, ECX=0x02a39810, EDX=0x02ed16d0
ESP=0x1bf6ebb8, EBP=0x1bf6ecc8, ESI=0x06ab0848, EDI=0x00b0d6a0
EIP=0x0097ce69, EFLAGS=0x00010216
Top of Stack: (sp=0x1bf6ebb8)
0x1bf6ebb8: ffff1372 ffff0000 ffffffff 0095b55f
0x1bf6ebc8: 00c7001b 1bf6f6c4 ffff0023 6d937fbe
0x1bf6ebd8: 00000000 085e0000 085e0000 1bc00000
0x1bf6ebe8: 0b419400 0000085e 6788943c 0001003f
0x1bf6ebf8: 9b000000 0b3fa308 1ba1eecc eed8eed0
0x1bf6ec08: 00001ba1 0732003f 00000000 c0000000
0x1bf6ec18: 00004000 00000000 3ffec000 0b486f6c
0x1bf6ec28: 00000005 02a394c8 02a395e0 6d7d7e75
Instructions: (pc=0x0097ce69)
0x0097ce59: 00 00 83 ec 6c dd 34 24 9b dd 24 24 dd 5c 24 6c
0x0097ce69: dd 5c 24 74 dd 5c 24 7c dd 9c 24 84 00 00 00 dd
Stack: [0x1bf20000,0x1bf70000), sp=0x1bf6ebb8, free space=314k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
v ~RuntimeStub::resolve_opt_virtual_call
J java.net.URL.<init>(Ljava/net/URL;Ljava/lang/String;)V
j sun.misc.URLClassPath$FileLoader.getResource(Ljava/lang/String;Z)Lsun/misc/Resource;+10
J sun.misc.URLClassPath.getResource(Ljava/lang/String;Z)Lsun/misc/Resource;
j java.net.URLClassLoader$1.run()Ljava/lang/Object;+26
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x0ab07800 JavaThread "Thread-6" [_thread_in_native, id=3288]
0x0af02400 JavaThread "StatusEventQueue" [_thread_blocked, id=2676]
0x0ab04c00 JavaThread "OpEventQueue" [_thread_blocked, id=340]
0x0b4d3400 JavaThread "TimerQueue" daemon [_thread_blocked, id=2728]
0x0b497800 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@169dd64" [_thread_blocked, id=1064]
0x0b4c6400 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@ee20fe" [_thread_blocked, id=4052]
0x0b4acc00 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@75c78d" [_thread_blocked, id=3452]
0x0b486000 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@650646" [_thread_blocked, id=3196]
=>0x0b4e4800 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@1b59919" [_thread_in_Java, id=3168]
0x0b48f400 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@126ba64" [_thread_blocked, id=1576]
0x0b4a3400 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@407166" [_thread_blocked, id=1648]
0x0b4ad400 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@1e4905a" [_thread_blocked, id=3392]
0x0b498800 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@d402dd" [_thread_blocked, id=4056]
0x0b4c7400 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@1e3a0ec" [_thread_blocked, id=1772]
0x0b48d400 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@1e9d9b1" [_thread_blocked, id=2700]
0x0b491400 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@509df8" [_thread_blocked, id=2576]
0x0b4b1400 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@10e1513" [_thread_blocked, id=1448]
0x0b4b0800 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@93c4f1" [_thread_blocked, id=2548]
0x0b4ae400 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@1dbb27d" [_thread_blocked, id=2212]
0x0b4b7800 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@705d28" [_thread_blocked, id=2236]
0x0b4b3c00 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@72d873" [_thread_blocked, id=2876]
0x0b46c400 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@18782a7" [_thread_blocked, id=1904]
0x0b447c00 JavaThread "Thread-4" [_thread_blocked, id=3364]
0x0b437400 JavaThread "Repository Writer of FileDictionary" [_thread_blocked, id=2672]
0x0b43b400 JavaThread "com.jxfs.forum.repository.KeyChangeDispatcher@1b11b79" [_thread_blocked, id=2264]
0x003f7800 JavaThread "DestroyJavaVM" [_thread_blocked, id=2956]
0x0b442800 JavaThread "com.jxfs.general.JxfsDeviceManager$StatusDispatcher@1682a53" [_thread_blocked, id=164]
0x0b42bc00 JavaThread "com.jxfs.general.JxfsDeviceManager$KeyValueChangeDispatcher@dac21" [_thread_blocked, id=2248]
0x0b40f800 JavaThread "com.jxfs.general.JxfsLogger$DeliverMsgs@9b688e" [_thread_blocked, id=1268]
0x0ae7a800 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=2156]
0x0ae85400 JavaThread "AWT-Windows" daemon [_thread_in_native, id=208]
0x0ae84800 JavaThread "AWT-Shutdown" [_thread_blocked, id=2712]
0x0ab23000 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=2796]
0x0aafe800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=3968]
0x0aaf9c00 JavaThread "CompilerThread0" daemon [_thread_blocked, id=2820]
0x0aaf8800 JavaThread "Attach Listener" daemon [_thread_blocked, id=2244]
0x0aaf7c00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2808]
0x0aae8000 JavaThread "Finalizer" daemon [_thread_blocked, id=2800]
0x0aae3c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=2944]
Other Threads:
0x0aae0800 VMThread [id=2908]
0x0ab19400 WatcherThread [id=2812]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
def new generation total 960K, used 467K [0x029d0000, 0x02ad0000, 0x02eb0000)
eden
[error occurred during error reporting, step 190, id 0xc0000092]
Dynamic libraries:
0x00400000 - 0x00423000 C:\JVM\jdk1.6.0\bin\javaw.exe
0x7c910000 - 0x7c9c6000 C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c901000 C:\WINDOWS\system32\kernel32.dll
0x77da0000 - 0x77e4c000 C:\WINDOWS\system32\ADVAPI32.dll
0x77e50000 - 0x77ee1000 C:\WINDOWS\system32\RPCRT4.dll
0x7e390000 - 0x7e420000 C:\WINDOWS\system32\USER32.dll
0x77ef0000 - 0x77f37000 C:\WINDOWS\system32\GDI32.dll
0x76340000 - 0x7635d000 C:\WINDOWS\system32\IMM32.DLL
0x62e30000 - 0x62e39000 C:\WINDOWS\system32\LPK.DLL
0x74d20000 - 0x74d8b000 C:\WINDOWS\system32\USP10.dll
0x77be0000 - 0x77c38000 C:\WINDOWS\system32\msvcrt.dll
0x7c340000 - 0x7c396000 C:\JVM\jdk1.6.0\jre\bin\msvcr71.dll
0x6d7c0000 - 0x6da07000 C:\JVM\jdk1.6.0\jre\bin\client\jvm.dll
0x76b00000 - 0x76b2e000 C:\WINDOWS\system32\WINMM.dll
0x6d310000 - 0x6d318000 C:\JVM\jdk1.6.0\jre\bin\hpi.dll
0x76bb0000 - 0x76bbb000 C:\WINDOWS\system32\PSAPI.DLL
0x6d770000 - 0x6d77c000 C:\JVM\jdk1.6.0\jre\bin\verify.dll
0x6d3b0000 - 0x6d3cf000 C:\JVM\jdk1.6.0\jre\bin\java.dll
0x6d7b0000 - 0x6d7bf000 C:\JVM\jdk1.6.0\jre\bin\zip.dll
0x6d000000 - 0x6d1c3000 C:\JVM\jdk1.6.0\jre\bin\awt.dll
0x72f80000 - 0x72fa6000 C:\WINDOWS\system32\WINSPOOL.DRV
0x774b0000 - 0x775ed000 C:\WINDOWS\system32\ole32.dll
0x5b150000 - 0x5b188000 C:\WINDOWS\system32\uxtheme.dll
0x736e0000 - 0x73729000 C:\WINDOWS\system32\ddraw.dll
0x73b40000 - 0x73b46000 C:\WINDOWS\system32\DCIMAN32.dll
0x746b0000 - 0x746fb000 C:\WINDOWS\system32\MSCTF.dll
0x75160000 - 0x7518e000 C:\WINDOWS\system32\msctfime.ime
0x7c9d0000 - 0x7d1ef000 C:\WINDOWS\system32\shell32.dll
0x77f40000 - 0x77fb6000 C:\WINDOWS\system32\SHLWAPI.dll
0x773a0000 - 0x774a3000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll
0x58c30000 - 0x58cca000 C:\WINDOWS\system32\comctl32.dll
0x6d2b0000 - 0x6d303000 C:\JVM\jdk1.6.0\jre\bin\fontmanager.dll
0x6d570000 - 0x6d583000 C:\JVM\jdk1.6.0\jre\bin\net.dll
0x71a30000 - 0x71a47000 C:\WINDOWS\system32\WS2_32.dll
0x71a20000 - 0x71a28000 C:\WINDOWS\system32\WS2HELP.dll
0x6d590000 - 0x6d599000 C:\JVM\jdk1.6.0\jre\bin\nio.dll
0x6d450000 - 0x6d474000 C:\JVM\jdk1.6.0\jre\bin\jpeg.dll
0x0b780000 - 0x0b7a3000 C:\Archivos de programa\Babylon\Babylon-Pro\CAPTLIB.DLL
0x770f0000 - 0x7717c000 C:\WINDOWS\system32\OLEAUT32.dll
0x74c10000 - 0x74c3c000 C:\WINDOWS\system32\OLEACC.dll
0x76030000 - 0x76095000 C:\WINDOWS\system32\MSVCP60.dll
0x1b9d0000 - 0x1ba0f000 C:\WINDOWS\system32\BNA5.dll
0x1c4b0000 - 0x1c54d000 C:\WINDOWS\system32\BNA5Ctl.dll
0x5f1f0000 - 0x5f207000 C:\WINDOWS\system32\olepro32.dll
VM Arguments:
jvm_args: -DGlobalHelp=DtgHelp.hs
java_command: com.dtg.jxfs.tools.test.JxfsTest C:\Views\nperales_JXFS21P\JXFS_System\JXFS\src\jxfs\..\..\..\..\GLOBALDS\ C:\Views\nperales_JXFS21P\JXFS_System\JXFS\src\jxfs\..\..\..\..\GLOBALDS\Tester\Test.properties
Launcher Type: SUN_STANDARD
Environment Variables:
CLASSPATH=C:\Archivos de programa\Java\jre1.5.0_05\lib\ext\QTJava.zip;C:\Archivos de programa\Rational\ClearQuest\cqjni.jar
PATH=C:\Archivos de programa\Archivos comunes\Unisys\ImageSecurity\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Archivos de programa\UltraEdit;C:\Archivos de programa\QuickTime\QTSystem\;C:\Archivos de programa\Rational\ClearCase\bin;C:\Archivos de programa\Rational\common
USERNAME=nperales
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 15 Model 4 Stepping 1, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows XP Build 2600 Service Pack 2
CPU:total 1 family 15, cmov, cx8, fxsr, mmx, sse, sse2, ht
Memory: 4k page, physical 1562696k(619700k free), swap 2970100k(2239440k free)
vm_info: Java HotSpot(TM) Client VM (1.6.0-b105) for windows-x86, built on Nov 29 2006 00:48:48 by "java_re" with unknown MS VC++:1310
I have developed an application to manage a note acceptor. The manufacturer provided me a dll to communicate the device but my application is written in Java, so I developed the corresponding JNI to send the commands and obtain the answers.
On the other hand, the dll sends some events to indicate the status of the device, so I developed the corresponding inverse JNI to allow the Java application to do the corresponding operations when an event occurs.
If I use j2sdk1.4.2_05 I have no problem, but with jre1.6.0_01 application crashes and I obtain a file with the information bellow, even when events from C arrive to Java. Any idea?
# An unexpected error has been detected by Java Runtime Environment:
# EXCEPTION_FLT_STACK_CHECK (0xc0000092) at pc=0x0097ce69, pid=2964, tid=3168
# Java VM: Java HotSpot(TM) Client VM (1.6.0-b105 mixed mode)
# Problematic frame:
# v ~RuntimeStub::resolve_opt_virtual_call
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
--------------- T H R E A D ---------------
Current thread (0x0b4e4800): JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@1b59919" [_thread_in_Java, id=3168]
siginfo: ExceptionCode=0xc0000092, ExceptionInformation=0x00000000 0x1bf6ec24
Registers:
EAX=0x06b33dc0, EBX=0x06b33dc0, ECX=0x02a39810, EDX=0x02ed16d0
ESP=0x1bf6ebb8, EBP=0x1bf6ecc8, ESI=0x06ab0848, EDI=0x00b0d6a0
EIP=0x0097ce69, EFLAGS=0x00010216
Top of Stack: (sp=0x1bf6ebb8)
0x1bf6ebb8: ffff1372 ffff0000 ffffffff 0095b55f
0x1bf6ebc8: 00c7001b 1bf6f6c4 ffff0023 6d937fbe
0x1bf6ebd8: 00000000 085e0000 085e0000 1bc00000
0x1bf6ebe8: 0b419400 0000085e 6788943c 0001003f
0x1bf6ebf8: 9b000000 0b3fa308 1ba1eecc eed8eed0
0x1bf6ec08: 00001ba1 0732003f 00000000 c0000000
0x1bf6ec18: 00004000 00000000 3ffec000 0b486f6c
0x1bf6ec28: 00000005 02a394c8 02a395e0 6d7d7e75
Instructions: (pc=0x0097ce69)
0x0097ce59: 00 00 83 ec 6c dd 34 24 9b dd 24 24 dd 5c 24 6c
0x0097ce69: dd 5c 24 74 dd 5c 24 7c dd 9c 24 84 00 00 00 dd
Stack: [0x1bf20000,0x1bf70000), sp=0x1bf6ebb8, free space=314k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
v ~RuntimeStub::resolve_opt_virtual_call
J java.net.URL.<init>(Ljava/net/URL;Ljava/lang/String;)V
j sun.misc.URLClassPath$FileLoader.getResource(Ljava/lang/String;Z)Lsun/misc/Resource;+10
J sun.misc.URLClassPath.getResource(Ljava/lang/String;Z)Lsun/misc/Resource;
j java.net.URLClassLoader$1.run()Ljava/lang/Object;+26
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x0ab07800 JavaThread "Thread-6" [_thread_in_native, id=3288]
0x0af02400 JavaThread "StatusEventQueue" [_thread_blocked, id=2676]
0x0ab04c00 JavaThread "OpEventQueue" [_thread_blocked, id=340]
0x0b4d3400 JavaThread "TimerQueue" daemon [_thread_blocked, id=2728]
0x0b497800 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@169dd64" [_thread_blocked, id=1064]
0x0b4c6400 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@ee20fe" [_thread_blocked, id=4052]
0x0b4acc00 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@75c78d" [_thread_blocked, id=3452]
0x0b486000 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@650646" [_thread_blocked, id=3196]
=>0x0b4e4800 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@1b59919" [_thread_in_Java, id=3168]
0x0b48f400 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@126ba64" [_thread_blocked, id=1576]
0x0b4a3400 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@407166" [_thread_blocked, id=1648]
0x0b4ad400 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@1e4905a" [_thread_blocked, id=3392]
0x0b498800 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@d402dd" [_thread_blocked, id=4056]
0x0b4c7400 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@1e3a0ec" [_thread_blocked, id=1772]
0x0b48d400 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@1e9d9b1" [_thread_blocked, id=2700]
0x0b491400 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@509df8" [_thread_blocked, id=2576]
0x0b4b1400 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@10e1513" [_thread_blocked, id=1448]
0x0b4b0800 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@93c4f1" [_thread_blocked, id=2548]
0x0b4ae400 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@1dbb27d" [_thread_blocked, id=2212]
0x0b4b7800 JavaThread "Support:EventQueue(listeners=Vector@1,events=Vector@1,eventBufferSize=1000)@705d28" [_thread_blocked, id=2236]
0x0b4b3c00 JavaThread "QueueControl(mode=1,suspended=false,jobs=0,regControls=[],claimOwner[])@72d873" [_thread_blocked, id=2876]
0x0b46c400 JavaThread "com.jxfs.general.JxfsDeviceManager$DeviceKeyValueChangeDispatcher@18782a7" [_thread_blocked, id=1904]
0x0b447c00 JavaThread "Thread-4" [_thread_blocked, id=3364]
0x0b437400 JavaThread "Repository Writer of FileDictionary" [_thread_blocked, id=2672]
0x0b43b400 JavaThread "com.jxfs.forum.repository.KeyChangeDispatcher@1b11b79" [_thread_blocked, id=2264]
0x003f7800 JavaThread "DestroyJavaVM" [_thread_blocked, id=2956]
0x0b442800 JavaThread "com.jxfs.general.JxfsDeviceManager$StatusDispatcher@1682a53" [_thread_blocked, id=164]
0x0b42bc00 JavaThread "com.jxfs.general.JxfsDeviceManager$KeyValueChangeDispatcher@dac21" [_thread_blocked, id=2248]
0x0b40f800 JavaThread "com.jxfs.general.JxfsLogger$DeliverMsgs@9b688e" [_thread_blocked, id=1268]
0x0ae7a800 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=2156]
0x0ae85400 JavaThread "AWT-Windows" daemon [_thread_in_native, id=208]
0x0ae84800 JavaThread "AWT-Shutdown" [_thread_blocked, id=2712]
0x0ab23000 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=2796]
0x0aafe800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=3968]
0x0aaf9c00 JavaThread "CompilerThread0" daemon [_thread_blocked, id=2820]
0x0aaf8800 JavaThread "Attach Listener" daemon [_thread_blocked, id=2244]
0x0aaf7c00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2808]
0x0aae8000 JavaThread "Finalizer" daemon [_thread_blocked, id=2800]
0x0aae3c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=2944]
Other Threads:
0x0aae0800 VMThread [id=2908]
0x0ab19400 WatcherThread [id=2812]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
def new generation total 960K, used 467K [0x029d0000, 0x02ad0000, 0x02eb0000)
eden
[error occurred during error reporting, step 190, id 0xc0000092]
Dynamic libraries:
0x00400000 - 0x00423000 C:\JVM\jdk1.6.0\bin\javaw.exe
0x7c910000 - 0x7c9c6000 C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c901000 C:\WINDOWS\system32\kernel32.dll
0x77da0000 - 0x77e4c000 C:\WINDOWS\system32\ADVAPI32.dll
0x77e50000 - 0x77ee1000 C:\WINDOWS\system32\RPCRT4.dll
0x7e390000 - 0x7e420000 C:\WINDOWS\system32\USER32.dll
0x77ef0000 - 0x77f37000 C:\WINDOWS\system32\GDI32.dll
0x76340000 - 0x7635d000 C:\WINDOWS\system32\IMM32.DLL
0x62e30000 - 0x62e39000 C:\WINDOWS\system32\LPK.DLL
0x74d20000 - 0x74d8b000 C:\WINDOWS\system32\USP10.dll
0x77be0000 - 0x77c38000 C:\WINDOWS\system32\msvcrt.dll
0x7c340000 - 0x7c396000 C:\JVM\jdk1.6.0\jre\bin\msvcr71.dll
0x6d7c0000 - 0x6da07000 C:\JVM\jdk1.6.0\jre\bin\client\jvm.dll
0x76b00000 - 0x76b2e000 C:\WINDOWS\system32\WINMM.dll
0x6d310000 - 0x6d318000 C:\JVM\jdk1.6.0\jre\bin\hpi.dll
0x76bb0000 - 0x76bbb000 C:\WINDOWS\system32\PSAPI.DLL
0x6d770000 - 0x6d77c000 C:\JVM\jdk1.6.0\jre\bin\verify.dll
0x6d3b0000 - 0x6d3cf000 C:\JVM\jdk1.6.0\jre\bin\java.dll
0x6d7b0000 - 0x6d7bf000 C:\JVM\jdk1.6.0\jre\bin\zip.dll
0x6d000000 - 0x6d1c3000 C:\JVM\jdk1.6.0\jre\bin\awt.dll
0x72f80000 - 0x72fa6000 C:\WINDOWS\system32\WINSPOOL.DRV
0x774b0000 - 0x775ed000 C:\WINDOWS\system32\ole32.dll
0x5b150000 - 0x5b188000 C:\WINDOWS\system32\uxtheme.dll
0x736e0000 - 0x73729000 C:\WINDOWS\system32\ddraw.dll
0x73b40000 - 0x73b46000 C:\WINDOWS\system32\DCIMAN32.dll
0x746b0000 - 0x746fb000 C:\WINDOWS\system32\MSCTF.dll
0x75160000 - 0x7518e000 C:\WINDOWS\system32\msctfime.ime
0x7c9d0000 - 0x7d1ef000 C:\WINDOWS\system32\shell32.dll
0x77f40000 - 0x77fb6000 C:\WINDOWS\system32\SHLWAPI.dll
0x773a0000 - 0x774a3000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll
0x58c30000 - 0x58cca000 C:\WINDOWS\system32\comctl32.dll
0x6d2b0000 - 0x6d303000 C:\JVM\jdk1.6.0\jre\bin\fontmanager.dll
0x6d570000 - 0x6d583000 C:\JVM\jdk1.6.0\jre\bin\net.dll
0x71a30000 - 0x71a47000 C:\WINDOWS\system32\WS2_32.dll
0x71a20000 - 0x71a28000 C:\WINDOWS\system32\WS2HELP.dll
0x6d590000 - 0x6d599000 C:\JVM\jdk1.6.0\jre\bin\nio.dll
0x6d450000 - 0x6d474000 C:\JVM\jdk1.6.0\jre\bin\jpeg.dll
0x0b780000 - 0x0b7a3000 C:\Archivos de programa\Babylon\Babylon-Pro\CAPTLIB.DLL
0x770f0000 - 0x7717c000 C:\WINDOWS\system32\OLEAUT32.dll
0x74c10000 - 0x74c3c000 C:\WINDOWS\system32\OLEACC.dll
0x76030000 - 0x76095000 C:\WINDOWS\system32\MSVCP60.dll
0x1b9d0000 - 0x1ba0f000 C:\WINDOWS\system32\BNA5.dll
0x1c4b0000 - 0x1c54d000 C:\WINDOWS\system32\BNA5Ctl.dll
0x5f1f0000 - 0x5f207000 C:\WINDOWS\system32\olepro32.dll
VM Arguments:
jvm_args: -DGlobalHelp=DtgHelp.hs
java_command: com.dtg.jxfs.tools.test.JxfsTest C:\Views\nperales_JXFS21P\JXFS_System\JXFS\src\jxfs\..\..\..\..\GLOBALDS\ C:\Views\nperales_JXFS21P\JXFS_System\JXFS\src\jxfs\..\..\..\..\GLOBALDS\Tester\Test.properties
Launcher Type: SUN_STANDARD
Environment Variables:
CLASSPATH=C:\Archivos de programa\Java\jre1.5.0_05\lib\ext\QTJava.zip;C:\Archivos de programa\Rational\ClearQuest\cqjni.jar
PATH=C:\Archivos de programa\Archivos comunes\Unisys\ImageSecurity\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Archivos de programa\UltraEdit;C:\Archivos de programa\QuickTime\QTSystem\;C:\Archivos de programa\Rational\ClearCase\bin;C:\Archivos de programa\Rational\common
USERNAME=nperales
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 15 Model 4 Stepping 1, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows XP Build 2600 Service Pack 2
CPU:total 1 family 15, cmov, cx8, fxsr, mmx, sse, sse2, ht
Memory: 4k page, physical 1562696k(619700k free), swap 2970100k(2239440k free)
vm_info: Java HotSpot(TM) Client VM (1.6.0-b105) for windows-x86, built on Nov 29 2006 00:48:48 by "java_re" with unknown MS VC++:1310
Similar Messages
-
Problem with JNI and Parallel Port dll
Hi. I'm doing some testes with JNI. Firs i followed the netbeans tutorial for doing a C programa that prints somthing for java.. like.. "Hello java from C".
So i tried to load a dll from my dll. Like, I have this dll to use the parallel port on windows Xp. So i created a dll to access it an comunicates eoth java.
I did everything just fine.
When I start my Java app, the first thing it does is to load this parallel port dll and configure the functions of it.
After that .. I get this error
EXCEPTION_FLT_STACK_CHECK (0xc0000092) at pc=0x0093d269, pid=2284, tid=3000
Can someone explain why ?
(Sorry if i wasn't clear enough, english is not my native language, so ask if you don't understand something.. )hi ,
I met the same problem this morning, and searched the www.google.com in order to solve it, as a result, your article was shown on my screen. :)
Till now I have read some technical information and solved my problems. Maybe the solution be useful to you:
==============================
error message : (Environment : Tomcat 5, Windows 2003, Mysql5)
2006-3-29 11:53:48 org.apache.catalina.core.StandardWrapper unload
message: Waiting for 2 instance(s) to be deallocated
==============================
cause: the number of connection to database exceeded.another word,too many connections.
==============================
solution: close the connection when it becomes useless for your program. :)
==============================
ps. Sorry for my weak English . hehe .... -
Awkward problems with JNI on J2SE 5.0
I'm experiencing a strange problem with JNI and I hope someone can help me out.I've installed Cygwin, MinGW and then the CDT plug-in for Eclipse C/C++ development. This means I've used the MinGW make utility. It successfully creates the DLL file, but for some awkward reason, function www_tutorial_jni_HelloWorld_displayHelloWorld cannot be found (UnsatisfiedLinkError: displayHelloWorld).
The Java class looks like this:
package www.tutorial.jni;
public class HelloWorld {
public native void displayHelloWorld();
static {
System.loadLibrary("hello");
public static final void main(String[] args) {
try {
HelloWorld hw = new HelloWorld();
hw.displayHelloWorld();
} catch (Exception e) {
System.out.println(e.toString());
}The header that was generated by javah.exe (version 1.5.0_01) looks like this:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class www_tutorial_jni_HelloWorld */
#ifndef _Included_www_tutorial_jni_HelloWorld
#define _Included_www_tutorial_jni_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
* Class: www_tutorial_jni_HelloWorld
* Method: displayHelloWorld
* Signature: ()V
JNIEXPORT void JNICALL
Java_www_tutorial_jni_HelloWorld_displayHelloWorld
(JNIEnv *, jobject);
#ifdef __cplusplus
#endif
#endifThe C++ implementation looks like this:
#include <jni.h>
#include "www_tutorial_jni_HelloWorld.h"
#include <stdio.h>
JNIEXPORT void JNICALL
Java_www_tutorial_jni_HelloWorld_displayHelloWorld(JNIEnv
*env, jobject obj)
printf("Hello world!\n");
return;
}I've made sure that the fully qualified name of the implementation function is identical to the one in the header. I don't understand why I still get the error; especially since checking the DLL reveals that a function called "Java_www_tutorial_jni_HelloWorld_displayHelloWorld" exists.
Could someone try and produce a successfull DLL/SO from the C++ code and then try and run the Java part on a 5.0 version of Java? I'm really curious as to what on Earth is going on...... Otherwise, I would have
to add whatever directory I put my DLL into to the
PATH variable.Not necessarily. I believe the "PATH" also implicitly includes the "current directory". I also think that most JNI users put their DLL in a directory from which they also launch java (so it's in the current directory).
>
... a java.library.path set.
If I don't explicitly set a Java library path,
Eclipse can't even find the DLL. I'm beginning to
believe that Eclipse somehow screws up running Java
programs with native code...I don't know about that... Probably just something extra you have to do with your Eclipse project so that it can find the DLL.
But like I said, I don't really know - just trying to throw out ideas, small as they may be. -
i have to implement a few standard APIs. As a part of the implementation I have to provide references to an object I create. Now my underlying code is C++ with JNI used to throw the Java APIs. Problem is JNI now returns different references for the same object and hence my prupose id defeated. Could anyone suggest how this problem can be overcome.
I tried to figure out what your problem is, but can't. Please rephrase it and give a bit more detail on what you are doing and what is going wrong.
-
i have to implement a few standard APIs. As a part of the implementation I have to provide references to an object I create. Now my underlying code is C++ with JNI used to throw the Java APIs. Problem is JNI now returns different references for the same object and hence my prupose id defeated. Could anyone suggest how this problem can be overcome.
I'm not exactly sure what you're talking about, but it sounds like you may need to look into global references. Look at NewGlobalRef() and DeleteGlobalRef() and see if those help you out.
God bless,
-Toby Reyelts
For all your JNI woes, check out Jace - http://jace.reyelts.com/jace -
Problem with JNI form C++
Hi all,
I'm fairly new to programming with JNI, so please excuse me if I ask a dumb question.
I'm trying to call a Java method from a C++ class, but when I run the program, it throws an error, crashing the program. I'm pretty sure the problem is that the call to env->getMethodID() is throwing an error. I have looked around to try and find a way call a function with no arguments, but all of the examples that I have found all call a Java main.
I'll post my code and the error message below so that things are a bit clearer.
Thanks,
Robert.
Here is the main.cpp. This is where the program is started.
#include "/usr/lib/jvm/java-6-sun-1.6.0.06/include/jni.h"
int main()
JNIEnv *env;
JavaVM *jvm;
jint res;
jclass cls;
jmethodID mid;
// creation of the JVM
JavaVMInitArgs vm_args;
JavaVMOption options[1];
options[0].optionString = "-Djava.class.path= .";
vm_args.version = 0x00010002;
vm_args.options = options;
vm_args.nOptions = 1;
vm_args.ignoreUnrecognized = JNI_TRUE;
res = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
// now the rest of the code can work
cls = env->FindClass("Test");
mid = env->GetMethodID(cls, "run", "()V");
env->CallVoidMethod(cls, mid);
jvm->DestroyJavaVM();
}Here is Test.java
public class Test
public void run()
System.out.println("stuff");
foo();
public void foo()
System.out.println("asdfasdf");
}And here is the error message.
# An unexpected error has been detected by Java Runtime Environment:
# SIGSEGV (0xb) at pc=0x06245f7d, pid=9054, tid=1076641792
# Java VM: Java HotSpot(TM) Client VM (10.0-b22 mixed mode, sharing linux-x86)
# Problematic frame:
# V [libjvm.so+0x245f7d]
# An error report file with more information is saved as:
# /media/MY STICK/jni/cpp/hs_err_pid9054.log
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
AbortedEdited by: metaldrummer610 on Apr 23, 2008 8:35 PMYeah, so I just figured out what was wrong. I wasn't calling main from in Java. My bad guys.
-
Opening a new JFrame in a specific DISPLAY on X11 environment with JNI
Hi,
I have a problem that I'm unable to solve.
I have a Java Application (on Linux with X11 XServer display manager ) running in background that has to open, once received the request, JFrames on the client display. So if I launch the client from "display1", I have to open a JFrame on display1 and then if I launch again the client from "display2", I have to open a JFrame on display2.
But I found no way do specify where (on which display) I want to open my frame.
I saw there is a JFrame constructor using GraphicsConfiguration but it I can access only to Local GraphicsConfiguration, so I didn't understand the meaning of this parameter. ;-)
I tryed even to change runtime the value of $DISPLAY environment variable just before the "new" call but it seems that awt connect to XServer only the first time I use a "graphic call" using correctly my $DISPLAY changed value.
So all my frames appear on the display from which the first client connects.
There is a way to tell awt to open a window on a specific DISPLAY without JNI ?
Or, with JNI it's possible to override, in the X11DrawingSurfaceInfo structure, the field "display" (opening a new connection when necessary) for specific JFrame and the return the changed value to the AWT engine ?
Thanks to allHi,
Have you had any further luck with this? I'd like to do something very similar to this (read from a config file the XServer address and use it at runtime to display on that particular server - I have multiple displays with different addresses).
The best I can figure so far is to use ProcessBuilder and launch another java process with the $DISPLAY env variable set (differently for each process - or client display in your case).
Whilst I may be able to get away with this for my project, it has many many disadvantages and I'd like to be able to change this programmatically/on-the-fly.
Anyone's help would be greatly appreciated.
I may just have to scrap using Java.. -
How can I get the time in Microsecond with JNI ?
How can I get the time in Microsecond with JNI ?
JNIEXPORT jdouble JNICALL Java_Win32Native_queryPerformanceFrequency (JNIEnv *env, jobject obj) {
LARGE_INTEGER lFrequency;
::QueryPerformanceFrequency(&lFrequency);
return (jdouble)lFrequency.QuadPart;
JNIEXPORT jdouble JNICALL Java_Win32Native_queryPerformanceCounter (JNIEnv *env, jobject obj) {
LARGE_INTEGER lpCounter;
::QueryPerformanceCounter(&lpCounter);
return (jdouble)lpCounter.QuadPart; -
How to use VS2005 dlls with jni?
Hello,
I have a java application using jni and some dlls.
Previously this dlls were created using VS2003. Now I want to use VS2005 and I
encountered some problems.
Everything is working on my station were I have installed VS2005 but when I try to run the
application on other station (a test station) is not working.
I get the following error:
java.lang.UnsatisfiedLinkError: C:\App\Test.dll: This application has failed to start because
the application configuration is incorrect. Reinstalling the application may fix this problem
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
......First I tried to search all the dependences and copied all missing dlls from my work station to the test
station in the application directory. Still not working.
when dlls were made with VS2003 I had only 3 dependences: mfc71d, msvcp71d, msvcr71d. With this dlls in
the application directory everything was fine.
Second I tried to install .Net framework(2.0) and vcredist (VS2005_sp1) but still nothing.
What I'm doing wrong? Is somebody which is using dlls made in VS2005 with jni?
Thank you
,DragosIIRC, that message means the manifest file in the DLL points to assembly that your computer doesn't have, or it has no manifest file.
You either need to:
-recompile using static linking so that it has no dependencies
-stick the correct manifest in
-include the entire SxS (site by side) assembly folders with your application (only the ones you're dependent on). These are found in something similar to:
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86 -
I'm working on an application for interacting with a database, the database has a Java API and a C API for some of the backend functions. I'd like to use some of the C API for the backend to improve the performance of the application. The problem is that I can't pass the connection information back and forth between the Java side and the C side. The connection sessions are maintained by objects in either API (a Java class for connections and a C class for connections). These classes aren't identical, but they're very similar.
I'm not very experienced with JNI, but as far as I've read/tried, I can't pass these objects back and forth between Java and C. Since JVM addressing isn't necessarily absolute, I can't rely on getting an address to reference on the C side, and since (as far as I'm aware) I can only instantiate a Java side connection with Java side methods, I can't refer to a connection from the C-side either.
Long story short, I'm stuck trying to find a way to make these 2 API's get along so that I can get the added performance of the C backend. For some reason the API's don't have any methods that use session ID's or anything else that would be useful for this sort of thing. Maybe there is something else I could try or maybe I'm just missing something (it wouldn't be the first time).
Any thoughts/ideas/suggestions would be much appreciated.nsop07 wrote:
I'm working on an application for interacting with a database, the database has a Java API and a C API for some of the backend functions. I'd like to use some of the C API for the backend to improve the performance of the application. And why do you think that will work?
The problem is that I can't pass the connection information back and forth between the Java side and the C side. The connection sessions are maintained by objects in either API (a Java class for connections and a C class for connections). These classes aren't identical, but they're very similar.
I'm not very experienced with JNI, but as far as I've read/tried, I can't pass these objects back and forth between Java and C. Since JVM addressing isn't necessarily absolute, I can't rely on getting an address to reference on the C side, and since (as far as I'm aware) I can only instantiate a Java side connection with Java side methods, I can't refer to a connection from the C-side either.
In java you perserve a pointer, any pointer, via a java long value. Cast it back and forth when you go back and forth.
Don't forget to provide a mechanism to clean it up.
Java objects are similar and well defined in JNI - you pass a reference and access it via JNI methods. -
PC/SC with JNI vs. javax.smartcardio
Hi,
for programming card terminals (USB tag readers) the PC/SC was used with JNI. Since the Java Smartcard I/O API (javax.smartcardio, JSR 268) was introduces in 1.6 it makes the JNI obsolete right?
So there is no need for jpcsc and similar?
Thanks
STeN
Edited by: stenlik on Jun 8, 2011 8:39 PMsmartcardio uses JNI to access the PC/SC layer. It is built into the JDK so you do not have to distribute the JAR/DLL files any more as they are already delivered. jpcsc still has it's place but as you mentioned it is not required any more (unless your JDK does not have smartcardio).
Cheers,
Shane -
Help needed with JNI - java.lang.UnsatisfiedLinkError
I need some help with JNI. I am running on Sun Solaris 7 using their CC compiler. I wrote a simple java program that calls a native method to get a pid. Everything work until I use cout or cerr. Can anyone help? Below is what I am working with.
Note: The application works. The problem is when the C++ code tries to display text output.
My error log is as follows:
java Pid
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/dew/test/libPid.so: ld.so.1: /usr/j2se/bin/../bin/sparc/native_threads/java: fatal: relocation error: file /home/dew/test/libPid.so: symbol __1cDstdEcerr_: referenced symbol not found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1382)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1306)
at java.lang.Runtime.loadLibrary0(Runtime.java:749)
at java.lang.System.loadLibrary(System.java:820)
at Pid.<clinit>(Pid.java:5)
Pid.java
========
* Pid: Obtains the pid from the jvm.
class Pid {
static { System.loadLibrary("Pid"); }
public native int getPid();
public static void main(String args[])
System.out.println("Before construction of Pid");
Pid z = new Pid();
System.out.println(z.getPid());
z = null;
Pid.cpp
=========
* Native method that obtains and returns the processid.
#include "Pid.h"
#include "unistd.h"
#include <iostream.h>
JNIEXPORT jint JNICALL Java_Pid_getPid(JNIEnv *env, jobject obj) {
/* cout << "Getting pid\n"; */
cerr << "Getting pid\n";
/* printf("Getting pid\n"); */
return getpid();I forgot to include my build information.
JAVA_HOME = /usr/j2se/
LD_LIBRARY_PATH = ./:/opt/readline/lib:/opt/termcap/lib:/usr/bxpro/xcessory/lib:/${JAVA_HOME}/lib:/usr/RogueWave/workspaces/SOLARIS7/SUNPRO50/0d/lib:/usr/RogueWave/workspaces/SOLARIS7/SUNPRO50/3d/lib:/usr/sybase/lib
javac Pid.java
javah Pid
CC -G -I${JAVA_HOME}/include -I${JAVA_HOME}/include/solaris Pid.cpp -o libPid.so
Thanks again,
Don -
Calling an existing C code with JNI under linux.
Hi all,
I am trying to use an exsiting c code with jni but I am keep getting
java.lang.UnsatisfiedLinkError, I am working under linux.
This is what I have done so far:
1.export LD_LIBRARY_PATH='pwd'/lib
2. created HspellNative.java with the static System.loadLibrary("HspellNative") and native function called hspellInit
3. compiled the java class
4. javah -jni HspellNative
5. HspellNative.c:
#include <jni.h>
#include <stdio.h>
#include "HspellNative.h"
#include "hspell.h"
JNIEXPORT jint JNICALL
Java_HspellNative_hspellInit ( JNIEnv* env, jobject obj )
struct dict_radix **dict;
return ( (jint) (hspell_init(dict,0) ) );
6. could be the problematic one:
gcc -o lib/libHspellNative.so -shared -I/opt/bea/jdk142_05/include -I/opt/bea/jdk142_05/include/linux hspell.c HspellNative.c
7. java HspellNative
8. getting the following error:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /opt/haim/Hspell/hspell-0.9/lib/libHspellNative.so: /opt/haim/Hspell/hspell-0.9/lib/libHspellNative.so: undefined symbol: hspell_debug
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1586)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1511)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at HspellNative.<clinit>(HspellNative.java:18)
My problem is that I don't know how to combine my HspellNative.c to the existing hspell.c, I know I should put them together in the shared library somehow, but how ?
Please advice.
Thanks in advance,
Haim.I know there is something wrong with the .so, the question is: what ? and how do I fix it ?
This is the ldd ldd libHspellNative.so output:
/etc/libcwait.so => /etc/libcwait.so (0x0060b000)
libc.so.6 => /lib/tls/libc.so.6 (0x00111000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00359000)
I have no idea what it means...
I think I will try the SWIG.
Thanks any way. -
Problem with JNI in a Solaris shared library
Hi,
I have a problem.
I have used JNI in my .dll on Windows & .so on Solaris . I have also used the same JNI code in a .exe on Windows & an executable on Solaris. 3 out of the above 4 combinations work & 1 doesen't. When I use JNI from a .so on Solaris 8(with/without the J2SE recommended patch), the JVM seems to have some exception & dumps core when I invoke CreateJavaVM(). See Below - I've included the output on the screen & the output from 'pstack core' :
Unexpected Signal : 11 occurred at PC=0xFED29D44
Function=[Unknown. Nearest: JVM_GetMethodIxExceptionIndexes+0x1994]
Library=/usr/java/jre/lib/sparc/libjvm.so
Current Java thread:
Dynamic libraries:
0x10000 SblSim
0xff280000 /usr/lib/libnsl.so.1
0xfec00000 /usr/java/jre/lib/sparc/libjvm.so
0xff370000 /usr/lib/libpthread.so.1
0xff350000 /usr/lib/librt.so.1
0xff260000 /usr/lib/libsocket.so.1
0xff390000 /usr/lib/libdl.so.1
0xff230000 /usr/lib/libCrun.so.1
0xff200000 /usr/lib/libm.so.1
0xff340000 /usr/lib/libw.so.1
0xff1b0000 /usr/lib/libthread.so.1
0xff080000 /usr/lib/libc.so.1
0xff180000 /usr/lib/libmp.so.2
0xff160000 /usr/lib/libaio.so.1
0xff1f0000 /usr/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1
0xfebd0000 /usr/j2se/jre/lib/sparc/native_threads/libhpi.so
0xfeba0000 /usr/j2se/jre/lib/sparc/libverify.so
0xfeb60000 /usr/j2se/jre/lib/sparc/libjava.so
0xfeb40000 /usr/j2se/jre/lib/sparc/libzip.so
0xfe920000 /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2
0xf1400000 ./libaicd.so
0xfc480000 ./libmttoolkit.so
0xfdfe0000 ./libmttlogger.so
0xfdfb0000 /usr/j2se/jre/lib/sparc/libnet.so
Local Time = Tue Nov 12 09:51:37 2002
Elapsed Time = 29
# HotSpot Virtual Machine Error : 11
# Error ID : 4F530E43505002D5 01
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
# Java VM: Java HotSpot(TM) Client VM (1.4.0_01-b03 mixed mode)
# An error report file has been saved as hs_err_pid3120.log.
# Please refer to the file for further information.
Abort(coredump)
Below is the output of 'pstack core'
$ pstack core
core 'core' of 3120: SblSim libaicd.so 127.0.0.1 9999
----------------- lwp# 1 / thread# 1 --------------------
ff1c9764 __sigprocmask (ff1cbf60, 0, 0, 565f8, ff1de000, 0) + 8
ff1be110 _sigon (565f8, ff1e5930, 6, ffbedba4, 565f8, 6) + d0
ff1c1150 thrpkill (0, 1, 6, ff1de000, 1, ff140450) + f8
ff0cb900 raise (6, 0, 0, ffffffff, ff1403bc, 4) + 40
ff0b58ec abort (ff13c000, ffbedcf8, 0, fffffff8, 4, ffbedd19) + 100
feee2700 ???????? (1, fef98e50, ffbedd98, 0, feffc130, feee1258)
feee12c8 ???????? (60650, b, fed29d44, ffbeeab8, b, 0)
fede77c0 ???????? (fed29d44, ffbeeab8, ffbee800, fed29d44, fed03744, 0)
ff1cb824 __sighndlr (b, ffbeeab8, ffbee800, fede6f38, 5669c, 5668c) + c
ff1c84d8 sigacthandler (b, 565f8, 0, 0, 0, ff1de000) + 708
--- called from signal handler with signal 11 (SIGSEGV) ---
fed29d44 ???????? (0, 60650, 0, 0, 0, 0)
fed2d7d4 ???????? (606e4, 0, 0, ffbeed00, 0, 0)
f172e818 __1cHJNIEnv_JNewObject6MpnH_jclass_pnK_jmethodID_E_pnI_jobject__ (606e4, 0, 0, ffbeed70, 39, 107f90) + 70
f172dbf8 __1cGJEvent2t5B6M_v_ (107f60, f1a877f4, db088, ff0c1c44, 107f48, 0) + 80
f16f2864 __1cGCEvent2t6Mii_v_ (107f60, 0, 1, ff13c000, 107f48, 0) + 7c
f16e62e8 __1cVCISCHelperThreadMutex2t6M_v_ (107f50, 0, 560ac, 30f68, fefe4000, 0) + c0
f16ddc34 __1cLinitGlobals6F_v_ (0, 1, 19a, f1a198ec, f1a198ec, 0) + 5c
f16de4e4 CreateISCDriverInstance (0, 5cc40, 0, 57608, 565e8, 0) + 554
00034f08 __1cJRunSblSim6F_v_ (1, ffbef322, ffbef32c, ff13fc70, 100d4, 0) + 320
00035588 main (4, ffbef1dc, ffbef1f0, 55c00, 0, 0) + 1a8
00018460 _start (0, 0, 0, 0, 0, 0) + 108
----------------- lwp# 2 / thread# 2 --------------------
ff11e958 _signotifywait (ff1de000, 59, 0, 0, 0, 0) + 8
ff1c2030 thr_yield (0, 0, 0, 0, 0, 0) + 8c
----------------- lwp# 3 --------------------------------
ff1c9774 private___lwp_cond_wait (ff075d70, ff1ded9c, ff1de000, 0, 0, 4) + 8
ff11c554 doorreturn (ff075cb0, ff1ba740, 0, 0, 0, 0) + 68
----------------- lwp# 4 / thread# 4 --------------------
ff11efbc ___lwp_cond_wait (60048, 60030, fe901ad0, 0, 0, fe901ac8) + 8
ff116610 lwpcond_timedwait (1cb8c88, 3dd1157a, fe901ba4, 60030, 60048, 1) + 98
fecfc7d8 ???????? (0, 1, 0, 581b8, feffa26c, 0)
fecfcfd4 ???????? (ff00a15c, feffa4b8, feffa4b4, 0, 0, 0)
fecfccc0 ???????? (d3980, 0, 0, 0, 0, 0)
fecfcbd0 ???????? (d3980, ff1df688, 1, 1, ff1de000, 0)
ff1cb728 threadstart (d3980, 0, 0, 0, 0, 0) + 40
----------------- lwp# 5 --------------------------------
ff11c4fc doorreturn (4, ff1df688, ff1df6a0, 3, ff1de000, 1) + 10
ff1ba740 lwpstart (fea95d70, 0, 6000, ff075b74, 0, 0) + 18
ff1c2030 thr_yield (0, 0, 0, 0, 0, 0) + 8c
----------------- lwp# 6 / thread# 5 --------------------
ff11efbc ___lwp_cond_wait (d5720, d5708, 0, fed10a40, 0, 0) + 8
fed110d4 ???????? (d56c8, 0, 5000, 5210, d4d38, 4d24)
fed10824 ???????? (fdf8172c, 0, 0, d4d38, d4d38, 30dec8)
fed103b0 ???????? (d4dcc, fdf81824, 0, 0, 0, 0)
fa40cc94 ???????? (f2000380, b6, fdf818a4, ffffffff, 0, fdf817c0)
fa405da0 ???????? (f2000380, b6, fdf818a8, fa415444, 0, fdf81840)
fa405da0 ???????? (fdf81938, 0, 0, fa4157a4, 2f4210, fdf818d8)
fa400438 ???????? (fdf819c0, fdf81c08, a, f6050b68, fa40bc8c, fdf81b50)
fecfe2f8 ???????? (fdf81c00, fdf81a88, fdf81b48, d4d38, d4d38, fdf81a9c)
fed0ff90 ???????? (fefe4000, d5298, fdf81b3c, fdf81b38, fdf81b48, d4d38)
fed0fdf0 ???????? (fdf81c00, fdf81bfc, fdf81bf0, fdf81be8, fdf81be0, d4d38)
fed0fd78 ???????? (d4d38, d4d38, ac9a0, d5298, 2d4488, fed0fa60)
fed0fa88 ???????? (d4d38, 0, 0, 0, 0, 0)
fecfcbd0 ???????? (d4d38, ff1df688, 1, 1, ff1de000, 0)
ff1cb728 threadstart (d4d38, 0, 0, 0, 0, 0) + 40
----------------- lwp# 7 / thread# 6 --------------------
ff11efbc ___lwp_cond_wait (d7040, d7028, 0, 1, 0, 0) + 8
fed110d4 ???????? (d6fe8, 0, 5000, 5210, d6658, 4d24)
fed10824 ???????? (fa38169c, 0, 0, d6658, d6658, 30dec8)
fed103b0 ???????? (d66ec, fa38179c, 0, 0, 0, 0)
fa40cc94 ???????? (f2000490, b6, fa3817a0, fa414050, 0, fa381730)
fa405da0 ???????? (f2000478, b6, fa3818b4, fa415444, 0, fa3817d8)
fa405c4c ???????? (f2000478, b6, fa381934, fa415444, d6658, fa381858)
fa405c4c ???????? (fa381938, 0, 0, fa38197c, 2f4210, fa3818d8)
fa400438 ???????? (fa3819c0, fa381c08, a, f60520b8, fa40bc8c, fa381b50)
fecfe2f8 ???????? (fa381c00, fa381a88, fa381b48, d6658, d6658, fa381a9c)
fed0ff90 ???????? (fefe4000, d6bb8, fa381b3c, fa381b38, fa381b48, d6658)
fed0fdf0 ???????? (fa381c00, fa381bfc, fa381bf0, fa381be8, fa381be0, d6658)
fed0fd78 ???????? (d6658, d6658, ac9e0, d6bb8, 2d4488, fed0fa60)
fed0fa88 ???????? (d6658, 0, 0, 0, 0, 0)
fecfcbd0 ???????? (d6658, ff1df688, 1, 1, ff1de000, 0)
ff1cb728 threadstart (d6658, 0, 0, 0, 0, 0) + 40
----------------- lwp# 8 / thread# 7 --------------------
ff11d194 _poll (0, 0, 0, fa281a28, ff13f1b4, fa281a28) + 8
ff1cb134 select (0, a, 0, ff1de000, fa281e14, 0) + 34
fed32afc ???????? (d8040, 0, a, 0, 0, 0)
fed328b4 ???????? (d8040, 0, 0, 0, 0, 0)
fecfcbd0 ???????? (d8040, ff1df688, 1, 1, ff1de000, 0)
ff1cb728 threadstart (d8040, 0, 0, 0, 0, 0) + 40
----------------- lwp# 9 / thread# 8 --------------------
ff11efbc ___lwp_cond_wait (5f998, 5f980, 2e7aa0, ff1de000, fa181e14, 0) + 8
fecfc634 ???????? (5f950, 0, 0, 0, feffa26c, 0)
fed3371c ???????? (3c00, 3f44, 0, 0, 0, 0)
fecfcbd0 ???????? (d81a8, ff1df688, 1, 1, ff1de000, 0)
ff1cb728 threadstart (d81a8, 0, 0, 0, 0, 0) + 40
----------------- lwp# 10 / thread# 9 --------------------
ff11f008 lwpsema_wait (f1f81e30, ff1de000, 0, f1f81d70, ff3e2628, 0) + c
ff1b94c0 _swtch (f1f81d70, ffffffff, ff1de000, 5, 1000, 0) + 158
ff1bcc64 sema_wait (ff020fe0, ff1e98e4, 5000, 10000, 534d, 1) + bc
fed345c8 ???????? (0, 6, b, a, 1, 0)
fed34254 ???????? (ff002ae4, ff00a5a0, ff00a5d4, dab90, 2d4488, fed0fa60)
fed0fa88 ???????? (da630, 0, 0, 0, 0, 0)
fecfcbd0 ???????? (da630, ff1df688, 1, 1, ff1de000, 0)
ff1cb728 threadstart (da630, 0, 0, 0, 0, 0) + 40
----------------- lwp# 11 / thread# 10 --------------------
ff11efbc ___lwp_cond_wait (604e8, 604d0, 2e7aa0, feffa26c, 106c40, 0) + 8
fecfc88c ???????? (604a0, 0, 0, dbbd0, feffa26c, 0)
fed349ac ???????? (db670, db670, dbfd0, dbbd0, 2d4488, fed0fa60)
fed0fa88 ???????? (db670, 0, 0, 0, 0, 0)
fecfcbd0 ???????? (db670, ff1df688, 1, 1, ff1de000, 0)
ff1cb728 threadstart (db670, 0, 0, 0, 0, 0) + 40
-------------------------- thread# 3 --------------------
ff1bddbc reapwait (ff1e29e0, 20520, 0, ff1de000, 0, 0) + 38
ff1bdb14 _reaper (ff1dee30, ff1e4740, ff1e29e0, ff1dee08, 1, fe400000) + 38
ff1cb728 threadstart (0, 0, 0, 0, 0, 0) + 40This is an update to the original message -
I have tried both HotSpot & Server JVMs but still see the
same behavior. I'm using 1.4 .
I'd like to provide more information to those who can help
me. I have a feeling there might be something wrong in my
CC options. Thus you will find below what my CC statement
looks like for one of the files in my project & for the
linking of the final shared library. I also have
provided the output of ldd on my shared library libaicd.so
& for comparison the output of ldd on libjvm.so as that
might provide some usefull information just incase
something looks suspecious & might ring a bell.
/opt/SUNWspro.cc6/bin/CC -c -KPIC -g -DDEBUG=DEBUG -
D_DEBUG -mt -DSOLARIS -DSTD_STREAM -
I/vob1/qwsrc/fw/include -I.-I/vob4/source/idl -
I/vob4/source/mttoolkit -I/vob4/source/mttoolkit/tools -
I/vob4/source/integrations/siebel/aicd -
I/vob4/source/include -I/vob1/qwsrc/fw/include -
I/vob4/source/source -I/vob4/source/mttoolkit -
I/vob1/external/platform_neutral/siebel/scapi/include -
I/external/sparc/Sun/jdk/1.3.1/include -
I/external/sparc/Sun/jdk/1.3.1/include/solaris -
I/vob4/source/idl -I/vob4/source/mttoolkit -
I/vob4/source/mttoolkit/tools -
I/vob4/source/mttoolkit/vnet -
I/vob4/source/mttoolkit/bool -DUNIX -
D_USE_MTTServerToolkit -D_JAVA_ WIAcceptTimeOut.cpp -
o /space/users/janak/buildoutput/sparc/debug/obj/integratio s/siebel/aicd/WIAcceptTimeOut.o
/opt/SUNWspro.cc6/bin/CC -G -
o /space/users/janak/buildoutput/sparc/debug/lib/fw/libaicd.so
/space/us
ers/janak/buildoutput/sparc/debug/obj/integrations/siebel/ai
cd/AgentService.o /space/users/janak/buildoutput/sparc/debug
/obj/integrations/siebel/aicd/AgentServiceCmds.o /space/user
s/janak/buildoutput/sparc/debug/obj/integrations/siebel/aicd
/AgentServiceEvents.o /space/users/janak/buildoutput/sparc/d
ebug/obj/integrations/siebel/aicd/AgentServiceICAReq.o /spac
e/users/janak/buildoutput/sparc/debug/obj/integrations/siebe
l/aicd/AgentServiceICEvents.o /space/users/janak/buildoutput
/sparc/debug/obj/integrations/siebel/aicd/AgentServiceUtilit
ies.o /space/users/janak/buildoutput/sparc/debug/obj/integra
tions/siebel/aicd/AvMc.o /space/users/janak/buildoutput/spar
c/debug/obj/integrations/siebel/aicd/InternationalStrings.o
/space/users/janak/buildoutput/sparc/debug/obj/integrations/
siebel/aicd/JEvent.o /space/users/janak/buildoutput/sparc/de
bug/obj/integrations/siebel/aicd/JMultipleEvents.o /space/us
ers/janak/buildoutput/sparc/debug/obj/integrations/siebel/ai
cd/JNIObject.o /space/users/janak/buildoutput/sparc/debug/ob
j/integrations/siebel/aicd/JObject.o /space/users/janak/buil
doutput/sparc/debug/obj/integrations/siebel/aicd/JSemaphore.
o /space/users/janak/buildoutput/sparc/debug/obj/integration
s/siebel/aicd/JWorkerThread.o /space/users/janak/buildoutput
/sparc/debug/obj/integrations/siebel/aicd/MultipleEvents.o /
space/users/janak/buildoutput/sparc/debug/obj/integrations/s
iebel/aicd/Param.o /space/users/janak/buildoutput/sparc/debu
g/obj/integrations/siebel/aicd/ParamQueue.o /space/users/jan
ak/buildoutput/sparc/debug/obj/integrations/siebel/aicd/RefC
ount.o /space/users/janak/buildoutput/sparc/debug/obj/integr
ations/siebel/aicd/SiebelDriver.o /space/users/janak/buildou
tput/sparc/debug/obj/integrations/siebel/aicd/SiebelEvent.o
/space/users/janak/buildoutput/sparc/debug/obj/integrations/
siebel/aicd/SiebelWorkItem.o /space/users/janak/buildoutput/
sparc/debug/obj/integrations/siebel/aicd/SingleEvent.o /spac
e/users/janak/buildoutput/sparc/debug/obj/integrations/siebe
l/aicd/SmartPtr.o /space/users/janak/buildoutput/sparc/debug
/obj/integrations/siebel/aicd/StdAfx.o /space/users/janak/bu
ildoutput/sparc/debug/obj/integrations/siebel/aicd/ThreadPoo
l.o /space/users/janak/buildoutput/sparc/debug/obj/integrati
ons/siebel/aicd/Utilities.o /space/users/janak/buildoutput/s
parc/debug/obj/integrations/siebel/aicd/WIAcceptTimeOut.o -
lnsl -lc -lCstd -
L/space/users/janak/buildoutput/sparc/debug/lib/cti -
lmttoolkit -
L/space/users/janak/buildoutput/sparc/debug/lib/fw -
lmttlogger -
L/space/users/janak/buildoutput/sparc/debug/lib/fw -
lqwlicmtt -
L/external/sparc/Sun/jdk/1.3.1/jre/lib/sparc/server -
Bdynamic -ljvm -mt -lpthread -lposix4
$ ldd /usr/j2se/jre/lib/sparc/libjvm.so
libCrun.so.1 => /usr/lib/libCrun.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libthread.so.1 => /usr/lib/libthread.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libm.so.1 => /usr/lib/libm.so.1
libw.so.1 => /usr/lib/libw.so.1
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1
$ ldd libaicd.so
libnsl.so.1 => /usr/lib/libnsl.so.1
libc.so.1 => /usr/lib/libc.so.1
libmttoolkit.so => ./libmttoolkit.so
libmttlogger.so => ./libmttlogger.so
libjvm.so => /usr/java/jre/lib/sparc/libjvm.so
libpthread.so.1 => /usr/lib/libpthread.so.1
librt.so.1 => /usr/lib/librt.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libCrun.so.1 => /usr/lib/libCrun.so.1
libthread.so.1 => /usr/lib/libthread.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libm.so.1 => /usr/lib/libm.so.1
libaio.so.1 => /usr/lib/libaio.so.1
libw.so.1 => /usr/lib/libw.so.1
/usr/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1 -
JDB shows inconsistent behaviour with JNI Based Programs.
package com.RJCBEmulator;
public class Testing
public static void main(String[] args) {
System.out.println("Start");
NativeObject myClass = new NativeObject();
System.out.println("Second line main" );
myClass.printInfo();
public class NativeObject {
static
System.loadLibrary("RJCBEmulator");
public NativeObject()
nativeHandle = InitializeNative(1);
public native long InitializeNative(int nClassId);
public void printInfo()
System.out.println( "Successful" );
public long nativeHandle;
JNIEXPORT jlong JNICALL Java_com_RJCBEmulator_NativeObject_InitializeNative(JNIEnv *env, jobject obj, jint jnIID)
printf( "Inside InitializeNative\n");
jlong retVal;
switch( jnIID )
case 1 :
// do something
break;
case 2 :
// do something
break;
return 999;
when executed this program with java, I get this trace.
Start
Inside InitializeNative
Second line main
Successful
and when running the same program in jdb, I get the following trace
Start
Second line main
Successful
Inside InitializeNative
I am using jre1.4.1, I tried it with 1.3.1 and it works. Looks like JNI code is getting executed on a separate thread in JDB based on jre1.4.1.
Is there anybody who is facing this problem? Is there a workaround?Start by testing your application using J2SE 1.4.1
(or the latest release available to you) and adding
"-Xcheck:jni" to the command line. This will perform
extra run-time checking on all JNI calls.
I don't
just want to see what native code parts that is
entered, I also want to be able to set breakpoints in
the native code (C code).There are debuggers that can work with both Java Language
and native code, but they need native support (in addition
to the Java Platform Debugger Architecture [JPDA]) to do it.
One example (on Solaris) is the latest release of dbx.
For more information, take a look at:
http://wwws.sun.com/software/sundev/suncc/documentation/mr/READMEs/dbx.html#new
Maybe you are looking for
-
Remote app and Ipad with Apple TV
I use the Remote app with both an iPad and iPhone to control my first gen Apple TV. This works fine except for one thing. When I select "Apple TV" as the library, using an iPhone I have access to all my library including Podcasts. When I run the same
-
SP/InfoPath - Duplicate Values
Hello, I have been trying to resolve this issue off and on for the past couple of weeks, no one seems to be able to assist me on the internet. Keep in mind I am a business user (process improvement manager). My new employer is getting a little anxio
-
File info greyed out & peculiar finder behavior.
A while ago I went into Terminal to 'show hidden files' in order to show '...And God Created Woman.mpg' which disappeared (because of the leading dots), I didn't mind the invisible files at first but when I tried to drag and drop copy my Music folder
-
Is CS5 Illustrator (Education Edition 2010) compatible with Windows 8???
I have Illustrator CS5 (education edition 2010) and I just got a new computer with Windows 8.1...Is this compatible with the version of Adobe I have??
-
BizTalk Host Application Adapters - Set Client Context Values
http://technet.microsoft.com/en-us/library/bb726925(v=bts.10).aspx Client Context The schema provides the node, TIClientContext, allowing context values to be passed. There are several Client Context properties supported by the adapter, listed in Tab