[Insight-users] Cannot debug projects of ITKApplication.

jimmy jimmy_lab at 163.com
Thu Jul 26 09:47:49 EDT 2007


Dear Mr Luis Ibanez:

        What I mean is that:  
            I can build the project in both Debug mode and Release mode successfully.   And the release version could be run correctly.
        But in the Debug mode,  whatever I use F5 or F10, etc in the debug tool,  the windows system will throw the error with a Error Dilaogue including:  (at itk::ImageFileReader [reader]->Update(); )
       
          "Debug Assertion Failed!
            Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
          "

          And the call stack of the debugger in VS2003 shows that:
          
         itk::ImageIOFactory::CreateImageIO(const char * path=0x0139d870, itk::ImageIOFactory::FileModeType mode=ReadMode)  Line75 + 0x57 
         >      if((*k)->CanReadFile(path))
         >     {
         >         return *k;
         >     }
    
        itk::ImageFileReader<itk::Image<unsigned short,2>,itk::DefaultConvertPixelTraits<unsigned short> >::GenerateOutputInformation()  Line109 + 0x27 
        ITKCommon.dll!itk::ProcessObject::UpdateOutputInformation()  Line760
        itk::ImageBase<2>::UpdateOutputInformation()  Line177 + 0x3e
        ITKCommon.dll!itk::DataObject::Update()  Line343 
          
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Here is the code what I use:

typedef   itk::Image<unsigned short,3>     InputImageType;
typedef   itk::ImageFileReader< InputImageType >    FixedImageReaderType;
FixedImageReaderType::Pointer          reader;
reader               = FixedImageReaderType::New();
 
reader->SetFileName( filename );

 try
 {
      reader->Update();    <- HERE:  Error occurs    ( why does it only occur under the DEBUG mode,  however,  Release mode is okay? )
 }
 catch(itk::ExceptionObject & err )
 {
  std::cout<< "ExceptionObject caught !" << std::endl;
  std::cout<< err << std::endl;
  std::cout<< "while reading fixed image"<<std::endl;
 }
       
*BUT*
If I add three statements in the above code block.  The error disappeared.    Like:

typedef   itk::Image<unsigned short,3>     InputImageType;
typedef   itk::ImageFileReader< InputImageType >    FixedImageReaderType;
FixedImageReaderType::Pointer          reader;
reader               = FixedImageReaderType::New();
 
reader->SetFileName( filename );

itk::ImageIOBase::Pointer pio;
pio = itk::MetaImageIO::New();
reader->SetImageIO( pio );

 try
 {
      reader->Update();    <- NO error HERE
 }
 catch(itk::ExceptionObject & err )
 {
  std::cout<< "ExceptionObject caught !" << std::endl;
  std::cout<< err << std::endl;
  std::cout<< "while reading fixed image"<<std::endl;
 }

Could you tell me the reason of that? 


Thank you very much indeed.
   



jimmy
2007-07-26



发件人: Luis Ibanez
发送时间: 2007-07-25 20:40:25
收件人: jimmy
抄送: insight-users
主题: Re: Re: [Insight-users] Cannot debug projects of ITKApplication.


Hi Jimmy,


Can you please do the following:


1) In your binary version of ITK, run CMake again and Enable 

                         BUILD_TESTING
                         BUILD_EXAMPLES


2) Go to advanced mode (by selecting the check box on the top right)
    and search down for the "SITE" variable. Make sure that it has the
    correct name of your computer.


3) Click on the Configure button and then in the OK button. 


4) Build ITK again, this time it will compile the 1,200 programs
    of the testing suit. Make sure that you do this build for the
   "Debug" compilation mode. The build could take 1 to 3
   hours depending on the speed of your machine. 


5) Once the build finishes, open a console window (MS_DOS or Cygwin)
   and run the "ctest" command with the option  -D Experimental


    in most machines this will look like: 

    C:\Program File\CMake 2.4\bin\ctest   -D Experimental  -C Debug


   Make sure that you add the "-C Debug" at the end, so the testing
   will be executed for the Debug compilation mode.

   This will trigger the execution of the testing framework and will send
   the results to the public ITK Dashboard.


6) When the submission is complete, please let us know, so we
    can take a look at the results of your submission in the Dashboard. 


This will let us know if you build is working correctly on Debug mode.


BTW: When you say that you 

               "cannot DEBUG in *ITKApplication*"

Do you mean that:

  1) you can't build in Debug mode an ITK application of your own ?

  2) you can't build in Debug mode InsightApplications ?

  3) you can build in Debug, but then when using F5, the applications 
      does not start ?

  4) Do you get any error messages ?
      If so, please post to the list the *EXACT* error message that you are getting.  



We will appreciate a more detailed and precise description of your problem. 


When you send emails to the mailing list, you should describe your
problem as a list of step by step instructions  that will allow another 
person to replicate the problem that you are encountering.



      Thanks


           Luis


-----------------------------------------------------------------------------
On 7/23/07, jimmy < jimmy_lab at 163.com> wrote:
Hi, Luis:

        Thank you for your suggestion. 
        I am sorry that I have not describe my problem clearly.
        I have already generate the MetaImage head (.mhd) beforehand.
        And I used ImageFileReader correctly and access the data successfully by my own codes.( It also could be debugged ) 

        However what confused me is that I cannot DEBUG in *ITKApplication* as I mentioned before, but the RLEASE mode is okay.
        Could you give me any other suggestion?

Thank you very much indeed. 

Sincerely,
Jimmy

------------------
jimmy
2007-07-23

-------------------------------------------------------------
发件人:Luis Ibanez
发送日期:2007-07-23 21:35:51
收件人:jimmy
抄送:insight-users 
主题:Re: [Insight-users] Cannot debug projects of ITKApplication.


Hi Jimmy,

You should have mentioned from the beginning that you
were attempting to read a RAW image file.


        You *CANNOT* read a RAW image file 
        directly with the ImageFileReader.



You have the following options:

  a) Create a MetaImage header for the RAW file.
  b) Use explicitly the RAWImageIO class in your code.


From these two options, method (a) is the recommended one 
because method (b) results in hard-coding the image
parameters in your program.


The easiest way of creating a MetaImage header for your
raw image is to use the program:


   InsightApplications/MetaImageImporter 


It is a command-line dialog that will guide you through
the process by asking you questions about your image.


The filename extension of your MetaImage header must be
".mhd".

Once you have created this header, you can pass it as 
the filename to be read by the ImageFileReader.


   Regards,


      Luis


============================
jimmy wrote:
> Here is an example of this problem:
>
> I use itk::ImageFileReader [reader] to read a Raw data.  After the file name is set, and it runs to 
> [reader]->Update();    Error occurs.
>
> The following is call stack of Debugger:
>
>       itk::ImageIOFactory::CreateImageIO(const char * path=0x0139d870, itk::ImageIOFactory::FileModeType mode=ReadMode)  Line75 + 0x57 
>       if((*k)->CanReadFile(path))
>     {
>         return *k;
>     }
>
>       itk::ImageFileReader<itk::Image<unsigned short,2>,itk::DefaultConvertPixelTraits<unsigned short> >::GenerateOutputInformation()  Line109 + 0x27 
>       ITKCommon.dll!itk::ProcessObject::UpdateOutputInformation()  Line760
>       itk::ImageBase<2>::UpdateOutputInformation()  Line177 + 0x3e
>       ITKCommon.dll!itk::DataObject::Update()  Line343 
>
>
> Thanks in advance.
> ------------------
> jimmy
> 2007-07-23
>
> -------------------------------------------------------------
> 发件人:Luis Ibanez
> 发送日期:2007-07-22 22:57:00 
> 收件人:jimmy
> 抄送:insight-users
> 主题:Re: [Insight-users] Cannot debug projects of ITKApplication.
>
> Hi Jimmy,
>
> Can you look at the call stack in the debugger ?
>
> Could you trace what is the ITK file, and line 
> that is triggering the error ?
>
> Please let us know,
>
>
>   Thanks
>
>
>     Luis
>
>
> ----------------
> jimmy wrote:
>
>>Hi, everyone. 
>>
>>I have met a very strange problem when using ITKApplication:
>>I cannot debug or run Applications (e.g. ImageRegistration2D ,IntensityBased2D3DRegistration ) under the DEBUG mode in VS 2003. 
>>Here is the Error message:
>>"
>>Debug Assertion Failed!
>>Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
>>"
>>at [m_FixedImageReader or other object]->Update(); 
>>
>>On the contrary, the project can be run very smoothly under RELEASE mode.
>>
>>Can anyone help me?  Thanks in advance.
>>
>>--------------
>>jimmy
>>2007-07-21 
>>
>>
>>_______________________________________________
>>Insight-users mailing list
>>Insight-users at itk.org
>> http://www.itk.org/mailman/listinfo/insight-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20070726/90ebf644/attachment-0001.html


More information about the Insight-users mailing list