[IGSTK-Users] Error in Release mode, not in Debug mode

Tamas Ungi ungi.tamas at gmail.com
Tue Nov 30 16:43:47 EST 2010


Thank you Patrick!

Tamas



-----Original Message-----
From: Patrick Cheng [mailto:cheng at isis.georgetown.edu] 
Sent: Tuesday, November 30, 2010 3:46 PM
To: Tamas Ungi
Cc: igstk-users at public.kitware.com
Subject: Re: [IGSTK-Users] Error in Release mode, not in Debug mode

Hi Tamas,

Thanks for reporting the bug. This bug has just been fixed. The problem is
with the TrackerToolObserverToOpenIGTLinkRelay class.

"Uninitialized variable m_FramesPerSecond, causing failure in release mode
in Visual C++, as all uninitialized memory are set to zero in release mode"

Please follow this link to see the fix:

http://public.kitware.com/cgi-bin/viewcvs.cgi/Source/igstkTrackerToolObserve
rToOpenIGTLinkRelay.cxx?root=IGSTK&sortby=date&view=log

Patrick

On 11/1/2010 3:56 PM, Tamas Ungi wrote:
> Sure, attached is the code with the configuration xml and the pivot 
> calibration, just to have the exact same input I have.
>
> Note: PivotCalibration.xml has to be placed in the bin directory, or 
> should be given in the configuration xml with a full path.
>
> Note2: I have copied the classes igstkAscension3DGTracker, and 
> igstkAscension3DGTrackerTool to my own code, but there is no 
> significant change in them compared to those in the sandbox repository.
>
> Thank you,
> Tamas
>
>
>
> -----Original Message-----
> From: Patrick Cheng [mailto:cheng at isis.georgetown.edu]
> Sent: Monday, November 01, 2010 3:28 PM
> To: Tamas Ungi
> Cc: igstk-users at public.kitware.com
> Subject: Re: [IGSTK-Users] Error in Release mode, not in Debug mode
>
> Can you send me your test code along with your setups?
>
> Patrick
>
> On 11/1/2010 3:18 PM, Tamas Ungi wrote:
>> Hi Patrick,
>>
>> I turned off IGSTK_USE_SceneGraphVisualization in both IGSTK and 
>> IGSTKSandbox, recompiled in Release mode along with my own code, and 
>> the same problem appears to be happening. The program execution hangs 
>> at the same line.
>> What should be the next step?
>>
>> Thank you,
>> Tamas
>>
>>
>>
>> -----Original Message-----
>> From: Patrick Cheng [mailto:cheng at isis.georgetown.edu]
>> Sent: Friday, October 29, 2010 4:31 PM
>> To: Tamas Ungi
>> Cc: igstk-users at public.kitware.com
>> Subject: Re: [IGSTK-Users] Error in Release mode, not in Debug mode
>>
>> Hi Tamas,
>>
>> Looks like the event: transformEvent is being observed by 
>> igstkSceneGraphVisualization utilities.
>>
>> Can you try to turn off the option in your cmake and give it another try?
>> IGSTK_USE_SceneGraphVisualization
>>
>> Seems like we are narrowing down the problem now.
>>
>> Thank you,
>>
>> Patrick
>>
>> On 10/29/2010 12:42 PM, Tamas Ungi wrote:
>>> Hi Patrick,
>>>
>>> This line hangs:
>>> (inputItr->second)->SetCalibratedTransform( toolCalibratedTransform 
>>> ); in function: void Tracker::UpdateStatusSuccessProcessing( void ) 
>>> in
>>> file: igstkTracker.cxx It is around line 822;
>>>
>>> So I went into the SetCalibratedTransform( ... ) function, and found 
>>> that the call:
>>> this->InvokeEvent( transformEvent );
>>> in file: igstTrackerTool.cxx
>>> around line: 502;
>>> Doesn't return. The program hangs there (or goes somewhere in VTK?).
>>>
>>> How should I proceed debugging?
>>> Thanks,
>>> Tamas
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: Patrick Cheng [mailto:cheng at isis.georgetown.edu]
>>> Sent: Thursday, October 28, 2010 5:07 PM
>>> To: Tamas Ungi
>>> Cc: igstk-users at public.kitware.com
>>> Subject: Re: [IGSTK-Users] Error in Release mode, not in Debug mode
>>>
>>> Hi Tamas,
>>>
>>> I tried to reproduce the error with Windows 7 + Visual Studio 2008.
>>>
>>> I used the attached testing program, a pulse generator with a simple 
>>> callback to print out pulse count. It works under both Release and 
>>> Debug. So PulseGenerator is not the problem.
>>>
>>> My guess is there might be some problem with the pulse generator 
>>> callback functions in AscensionTracker code.
>>>
>>> There are three place to check:
>>>
>>> 1. igstkTracker.cxx line 736
>>> void Tracker::AttemptToUpdateStatusProcessing( void )
>>>
>>> 2. igstkTracker.cxx line 775
>>> void Tracker::UpdateStatusSuccessProcessing( void )
>>>
>>> 3. igstkAscension3DGTracker line 300 Ascension3DGTracker::ResultType
>>> Ascension3DGTracker::InternalUpdateStatus()
>>>
>>> Can you debug your code and check to see if whether the callback 
>>> function get stuck in one of these places?
>>>
>>> Thank you,
>>>
>>> Patrick
>>>
>>> On 10/28/2010 3:06 PM, Tamas Ungi wrote:
>>>> Hi Patrick,
>>>>
>>>> Yes, the main function begins with
>>>> igstk::RealTimeClock::Initialize();
>>>> I have inserted text outputs in igstkPulseGenerator.cxx, and found 
>>>> out that the line:
>>>> (t->cb)(t->arg);
>>>> around line 445 in igstkPulseGenerator.cxx doesn't return, but hangs.
>>>> The first time it is called.
>>>>
>>>> Thanks,
>>>> Tamas
>>>>
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: Patrick Cheng [mailto:cheng at isis.georgetown.edu]
>>>> Sent: Thursday, October 28, 2010 2:38 PM
>>>> To: Tamas Ungi
>>>> Cc: igstk-users at public.kitware.com
>>>> Subject: Re: [IGSTK-Users] Error in Release mode, not in Debug mode
>>>>
>>>> Hi Tamas,
>>>>
>>>> Do you have the following line in the beginning of your code?
>>>>
>>>> igstk::RealTimeClock::Initialize();
>>>>
>>>> In release mode, all uninitialized memory are set to zeros. This 
>>>> could be the potential reason of failing.
>>>>
>>>> Patrick
>>>>
>>>> On 10/28/2010 2:13 PM, Tamas Ungi wrote:
>>>>> Hi IGSTK Users,
>>>>>
>>>>> I have a strange problem.
>>>>>
>>>>> I have written a simple command line program using IGSTK, using 
>>>>> just an Ascension3DGTrackerTool and a 
>>>>> TrackerToolObserverToOpenIGTLinkRelay
>>>>> object. The main loop looks like this:
>>>>>
>>>>> try
>>>>>
>>>>> {
>>>>>
>>>>> while( 1 )
>>>>>
>>>>> {
>>>>>
>>>>> igstk::PulseGenerator::Sleep( unsigned int( 1000 / refreshRate ) 
>>>>> );
>>>>>
>>>>> igstk::PulseGenerator::CheckTimeouts();
>>>>>
>>>>> }
>>>>>
>>>>> }
>>>>>
>>>>> catch( std::exception&e )
>>>>>
>>>>> {
>>>>>
>>>>> std::cerr<<e.what()<<"\n";
>>>>>
>>>>> return EXIT_FAILURE;
>>>>>
>>>>> }
>>>>>
>>>>> In Debug mode (Visual Studio 2008) the program works perfectly.
>>>>> However, in Release mode, the CheckTimeouts() function never 
>>>>> returns, and the program is stuck at that line (line 6 in the 
>>>>> above
>>>>> snippet)
>>>> forever.
>>>>>
>>>>> Anybody have any idea how can this be?
>>>>>
>>>>> I would appreciate any help.
>>>>>
>>>>> Thank you,
>>>>>
>>>>> Tamas
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Powered by www.kitware.com
>>>>>
>>>>> Visit other Kitware open-source projects at 
>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>




More information about the IGSTK-Users mailing list