[Insight-users] Error in EM example
Dário Oliveira
dariodisk at gmail.com
Tue Apr 29 10:03:35 EDT 2008
Friends,
Going on with my problem I've just realised that when I generate the
Examples using Cmake, the EM example runs greatly.
I'm using Eclipse with QT and I added manually the libs necessary to
use ITK in my project. I've already used many of ITK features without
problems, but when I add this example to my project it doesn't execute
correctly.
Both the executables use the same ITK libraries. Does anyone suspects
what is causing the error?
I think that it could be the order of the libs in the g++ command, but
I think its not the case, becuse I put exactly the same order I seen
in Cmake generated makefile (build.make).
Any suggestion would be really appreciated.
Thanks!
2008/4/27 Dário Oliveira <dariodisk at gmail.com>:
> 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
>
--
Dário Oliveira
More information about the Insight-users
mailing list