[Insight-users] Error in EM example

Dário Oliveira dariodisk at gmail.com
Sun Apr 27 17:36:21 EDT 2008


Hi Luis,

As you asked for, I used gdb to Degub the example.

I haven't modified anything in the source code, and the error really
is exactly at

(components[i])->SetParameters( initialParameters[i] );


At this point the program send a signal of segmentation fault, but I
can access both components and initialParameters variables.

I'm sending some debug information. Do you have any other task that I
should perform to identify the problem?

Regards,
Dário

Here are the variables:

components      {...}
       _Vector_base<itk::SmartPointer<itk::Statistics::GaussianMixtureModelComponent<itk::Statistics::ListSample<itk::Vector<double,
1u> > > >,std::allocator<itk::SmartPointer<itk::Statistics::GaussianMixtureModelComponent<itk::Statistics::ListSample<itk::Vector<double,
1u> > > > > >   {...}
               _M_impl {...}

allocator<itk::SmartPointer<itk::Statistics::GaussianMixtureModelComponent<itk::Statistics::ListSample<itk::Vector<double,
1u> > > > >     {...}

new_allocator<itk::SmartPointer<itk::Statistics::GaussianMixtureModelComponent<itk::Statistics::ListSample<itk::Vector<double,
1u> > > > >     {...}
                       _M_start        0x00c61540
                               m_Pointer       0x00c61418

MixtureModelComponentBase<itk::Statistics::ListSample<itk::Vector<double,
1u> > > 0x00000000
                                               Object  0x00000000
                                               m_Sample        0x00c61258

m_MinimalParametersChange       1.0E-6
                                               m_Parameters    {...}

vnl_vector<double>      {...}
                                                               num_elmts       2
                                                               data
0x00c63930

*data   110.0

m_LetArrayManageMemory  true
                                               m_MembershipFunction
0x00c63838
                                               m_Weights       0x00c638a8
                                               m_ParametersModified    true
                                       m_GaussianDensityFunction       {...}
                                       m_Mean  {...}
                                       m_Covariance    {...}
                                       m_MeanEstimator {...}
                                       m_CovarianceEstimator   {...}
                       _M_finish       0x00c61544
                               m_Pointer       0xabababab
                       _M_end_of_storage       0x00c61544



initialParameters       {...}
       _Vector_base<itk::Array<double>,std::allocator<itk::Array<double>
> >   {...}
               _M_impl {...}
                       allocator<itk::Array<double> >  {...}
                               new_allocator<itk::Array<double> >      {...}
                       _M_start        0x00d01380
                               vnl_vector<double>      0x00000000
                                       num_elmts       2
                                       data    0x00d013f0
                                               *data   110.0
                               m_LetArrayManageMemory  true
                       _M_finish       0x00d01398
                       _M_end_of_storage       0x00d01398

Here is the debugger stack:

Thread [1] (Suspended: Signal 'SIGSEGV' received. Description:
Segmentation fault.)
       14 <symbol is not available> 0x77e5b28a
       13 <symbol is not available> 0x76481d27
       12 <symbol is not available> 0x777aa097
       11 operator delete()  0x00410565
       10 vnl_sse_dealloc()  0x004233ff
       9 vnl_c_vector_dealloc()  0x00424893
       8 vnl_c_vector<double>::deallocate()  0x00431e5a
       7 vnl_matrix<double>::destroy()  0x0042737c
       6 vnl_matrix<double>::~vnl_matrix()  0x00429797
       5 vnl_svd<double>::~vnl_svd()
D:\InsightToolkit-3.2.0\Utilities\vxl\core\vnl\algo\vnl_svd.h:84
0x00440736
       4 vnl_matrix_inverse<double>::~vnl_matrix_inverse()
D:\InsightToolkit-3.2.0\Utilities\vxl\core\vnl\algo\vnl_matrix_inverse.h:37
0x00433ead
       3 itk::Statistics::GaussianDensityFunction<itk::Vector<double, 1>
>::SetCovariance()
D:\InsightToolkit-3.2.0\Code\Numerics\Statistics\itkGaussianDensityFunction.txx:92
0x00436431
       2 itk::Statistics::GaussianMixtureModelComponent<itk::Statistics::ListSample<itk::Vector<double,
1> > >::SetParameters()
D:\InsightToolkit-3.2.0\Code\Numerics\Statistics\itkGaussianMixtureModelComponent.txx:116
0x00439872
       1 main() ..\src\teste.cpp:219 0x004019cc

2008/4/22 Luis Ibanez <luis.ibanez at kitware.com>:
>
> Hi Dario,
>
>
> Thanks for the additional information.
>
>
> Could you please do the following;
>
>
> a) compile this example in Debug mode
>
> b) load it inside gdb (or ddd)
>
> c) put a break point in the SetParameters() line.
>
> d) run it
>
> e) follow the execution step by step after the
>   break point.
>
> f) post to the list the exact line in which the
>   program fails.
>
> In the line:
>
>
> (components[i])->SetParameters( initialParameters[i] );
>
> the problem may be in the access to "components[i]",
> or the access to "initialParameters[i]", or in the
> internal execution of SetParameters().
>
>
> BTW: Have you modified the source code of this example
>     in any way ?
>
>
>
> Also, just for the record, this example runs fine
> in my Linux build. (CVS updated today).
>
>
>
>  Please let us know what you find.
>
>
>
>
>    Thanks
>
>
>       Luis
>
>
> -----------------------
> Dário Oliveira wrote:
> > Hi Luis,
> >
> > I try to run the executable and it just appears that window "this
> > program stopped working..." whithout any special message.
> >
> > I printed some outputs to check which line was causing that and is the
> > SetParameters. I can even print the parameters, they are ok, but when
> > I call this method, the program hungs.
> >
> > Is that a way to get more information about the error?
> >
> > Thank you
> >
> > Dário
> >
> > 2008/4/22, Luis Ibanez <luis.ibanez at kitware.com>:
> >
> >
> > > Hi Dario,
> > >
> > > Could you please post to the list the error messages that you are
> > > receiving from executing that line ?
> > >
> > >
> > >  Thanks
> > >
> > >
> > >    Luis
> > >
> > >
> > > -----------------------
> > >
> > > Dário Oliveira wrote:
> > >
> > >
> > > > Friends,
> > > >
> > > > I want to apply the EM estimator to detect some vessels, but I
> > > > actually can't execute the EM example given in the ITK source code
> > > >
> > > >
> > >
> > > (Examples/Statistics/ExpectationMaximizationMixtureModelEstimator.cxx.).
> > >
> > >
> > > > I have made some debug and the error occurs right at this line:
> > > > (components[i])->SetParameters( initialParameters[i] );
> > > >
> > > > I'm using ITK 3.2 compiled in MinGW.
> > > >
> > > > Anyone has any ideia how to work it out?
> > > >
> > > > thanks in advance!
> > > >
> > > >
> > >
> > >
> >
> >
> >
>



-- 
Dário Oliveira


More information about the Insight-users mailing list