- 29/08/2015 at 05:24 #3375Jenna WiseParticipant
I am working on an eye-tracking plug-in for eclipse. We are adding support for the Tobii EyeX Controller and the plug-in has full control over starting and stopping tracking and calibration and so forth.
The plug-in is written in Java and we are using C++ jni to call the Gaze SDK functions.
The calibration starts fine, but at random intervals of adding new calibration points the Java Runtime Environment ecounters a fatal error:
# A fatal error has been detected by the Java Runtime Environment:
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6b781da9, pid=5288, tid=6676
# JRE version: Java(TM) SE Runtime Environment (7.0_45-b18) (build 1.7.0_45-b18)
# Java VM: Java HotSpot(TM) Client VM (24.45-b08 mixed mode, sharing windows-x86 )
# Problematic frame:
# C [libEyeXTracker.dll+0x1da9]
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
# If you would like to submit a bug report, please visit:
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
Here is the stack trace:
Stack: [0x010f0000,0x01140000], sp=0x0113f940, free space=318k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
Now the calibration UI is being run by the main thread and the main thread is forced to wait until the add_calibration_point_handler callback function is invoked and finishes before trying to call tobiigaze_calibration_add_point_async again (ie. waiting until the tracker is done with the current point to move to the next point).
I have narrowed the error down to the tobiigaze_calibration_add_point_async function call. It does not reach the callback function before crashing.
Also as I said before, it crashes randomly meaning that sometimes it will crash when adding the second calibration point and then sometimes it will crash when adding the fourth calibration point and so forth.
Also the EyeX Engine is not activated so it will not overwrite any calibration data.
Please, let me know what you think the issue might be or if you need any other information.
I do believe that our repository is now public on github, so feel free to take a look.
The current EyeX code is under the gazeSDK branch.
Jenna30/08/2015 at 15:20 #3376Jenna WiseParticipant
The problem was that I was sending tobiigaze_point_2d* point to the tobiigaze_calibration_add_point function instead of a reference to tobiigaze_point_2d point. It is working perfectly fine now.03/09/2015 at 13:27 #3394Jenny [Tobii]Participant
I’m glad you found the root cause and that everything is working fine now!
- You must be logged in to reply to this topic.