[Paraview] Bad Code Generated for Remote Module (Maybe)

Kent Eschenberg eschenbe at psc.edu
Mon Jul 3 15:47:24 EDT 2006


It *seems* that bad server code has been generated for a remote module 
named "vtkCloud" that I am building. Note the emphasis on "seem" - it could 
be that the gdb debugger has become confused. A few details:

   Pentium III
   CentOS release 4.3 (Final)
   Linux  2.6.9-34.0.1.EL
   gcc (GCC) 3.4.5 20051201 (Red Hat 3.4.5-2)
   paraview 2.4.3

The initial problem was that in vtkCloud::RequestData

   vtkDataArray *D = this->GetInputArrayToProcess( 0, inputVector )

always returns 0 for D. However, as I poked around with gdb, it seems that 
this might be caused by a deeper problem.

I put a breakpoint in

    .../Servers/Filters/vtkCloudClientServer.cxx
   ==>vtkCloudCommand

I single-stepped down to where it jumped into

   .../Utilities/VTKClientServer/Filtering
   /vtkPolyDataAlgorithmClientServer.cxx
   ==>vtkPolyDataAlgorithmCommand

then onward to

   .../Utilities/VTKClientServer/Filtering
   /vtkAlgorithmClientServer.cxx
   ==> vtkAlgorithmCommand

then down (in the same file) to

   op->SetInputArrayToProcess(temp0,
   temp1,temp2,temp3,temp4)

This is the version where the 5th argument is a string. Then I entered "s" 
and see

   0x0a543bf8 in vtkAlgorithm::SetInputArrayToProcess ()
   at .../Utilities/VTKClientServer/Common
   /vtkPlaneCollectionClientServer.cxx:11
   11  vtkObjectBase *vtkPlaneCollectionClientServerNewCommand()

WHAT? How did I get to vtkPlaneCollection? This is repeatable.

To try a different approach I started over and in vtkCloud::RequestData at

   vtkDataArray *D = this->GetInputArrayToProcess( 0, inputVector )

stepped one instruction to see

   0x0a543cc0 in vtkAlgorithm::GetInputArrayToProcess ()
    at .../Utilities/VTKClientServer/Common
   /vtkPlaneCollectionClientServer.cxx:11
   11  vtkObjectBase *vtkPlaneCollectionClientServerNewCommand()

Obviously most ParaView routines can set/get the input array just fine. The 
difference is that I have set PARAVIEW_EXTRA_EXTERNAL_MODULES to add two 
modules (vtkCloud and another one). Is it possible that cmake or something 
else has gotten confused?

Thanks in advance!

Kent
Pittsburgh Supercomputing Center



More information about the ParaView mailing list