[IGSTK-Users] Error in Release mode, not in Debug mode
Patrick Cheng
cheng at isis.georgetown.edu
Mon Nov 1 15:28:14 EDT 2010
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