Two hints first: - If you make a change only to the implementation (i.e. a cxx file), you can use:
make vtkFoo/fast where vtkFoo is the library that contains the .cxx file - in this case vtkFiltering. - To get the value of an entry in vtkInformation in gdb, you can do: > print vtkDataObject::DATA_TYPE_NAME()->Get(info) Each key object has a Get method that takes the information object as the argument. > I set a break point in CheckDataObject. I stepped through - It skips > right to the 'else' on line 682 of vtkDemandDrivenPipeline.cxx. Something is fishy. This will require some more hard-core debugging. You may want to run this through valgrind first. If that shows something, it will save you time. Also, you may want to try a clean build. If valgrind doesn't show anything, try this: - before opening the file, set a breakpoint in vtkPolyDataAlgorithm::FillOutputPortInformation - after it sets DATA_TYPE_NAME(), make sure it is set - write down the pointer address of info - continue until vtkDemandDrivenPipeline::CheckDataObject, make sure info is the same thing as portInfo If they are the same, start again. After vtkPolyDataAlgorithm::FillOutputPortInformation, someone is removing DATA_TYPE_NAME(). The only way to track it is to walk until vtkDemandDrivenPipeline::CheckDataObject in the debugger. I suspect that this will be something like mismatching symbols between libraries because something is not recompiled or some write beyond array bounds. I can't imaging what else it could be. -berk On Sat, Jan 30, 2010 at 7:23 PM, David Doria <[email protected]> wrote: > On Sat, Jan 30, 2010 at 12:55 PM, Berk Geveci <[email protected]> wrote: >> I couldn't see anything obviously wrong. Try setting a breakpoint in >> vtkDemandDrivenPipeline::CheckDataObject right before you open the >> file. When you walk over that function, is there an output at all? If >> no, is DATA_TYPE_NAME() set to anything? > > I set a break point in CheckDataObject. I stepped through - It skips > right to the 'else' on line 682 of vtkDemandDrivenPipeline.cxx. > > I've never tried debugging in paraview before - is there a way to > check the value of DATA_TYPE_NAME() without adding an output line such > as: > cout << vtkDataObject::DATA_TYPE_NAME(); > > and recompiling? > > It takes a long time to compile Paraview so I'm sure this is a > terribly inefficient way to debug... but the debugger in KDevelop3 (an > interface to gdb) doesn't show values of things when you hover the > mouse over them so I'm not sure how to see it without using this > method. > > I looked at portInfo->Request->Name->*Name in the local variables of > the debugger and it is empty - is this the same as DATA_TYPE_NAME()? > > I'm not doing anything fancy - my class is derived from > vtkPolyDataAlgorithm and I haven't changed anything related to the > pipeline except for: > this->SetNumberOfInputPorts(0); > > so shouldn't this "just work"? > > Thanks, > > David > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the ParaView Wiki at: > http://paraview.org/Wiki/ParaView > > Follow this link to subscribe/unsubscribe: > http://www.paraview.org/mailman/listinfo/paraview > _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Follow this link to subscribe/unsubscribe: http://www.paraview.org/mailman/listinfo/paraview
