[vtkusers] vtkGraph::AddVertex segfault

Caleb Johnston cjj37 at cornell.edu
Thu May 13 15:41:19 EDT 2010


If I comment out the code, it does not crash. But I also have to end the
whole control flow at that point because everything after it depends upon
that data. But there is no crash.

Caleb


On Thu, May 13, 2010 at 3:25 PM, Aashish Chaudhary <
aashish.chaudhary at kitware.com> wrote:

> Can you try this..
>
> Can you comment the code where you are loading volume data? And see if you
> can replicate the crash?
>
>
> On Thu, May 13, 2010 at 3:17 PM, Caleb Johnston <cjj37 at cornell.edu> wrote:
>
>> The code is not that compilable without Qt, VTK, ITK, and Cmake installed.
>> It is publicly hosted at SourceForge:
>> http://sourceforge.net/projects/glassbrain/
>>
>> And the stack trace shows the problem arrises from the AddVertex call.
>>
>>
>> On Thu, May 13, 2010 at 2:25 PM, David Doria <daviddoria+vtk at gmail.com<daviddoria%2Bvtk at gmail.com>
>> > wrote:
>>
>>> On Thu, May 13, 2010 at 2:16 PM, Caleb Johnston <cjj37 at cornell.edu>
>>> wrote:
>>> > I'm getting a segfault when calling
>>> vtkMutableUndirectedGraph::AddVertex.
>>> > However, it does not always occur at the same vertex. Sometimes it is
>>> after
>>> > the 2nd vertex. Sometimes it won't happen at all (though rarely). I'm
>>> only
>>> > adding about 120 vertices. And the program is not consuming large
>>> amounts of
>>> > data so I don't understand why this is happening. Also, this only
>>> happens in
>>> > Linux and Windows but not MacOS X. Below, I have included my algorithm
>>> for
>>> > adding vertices.
>>> > thanks,
>>> > Caleb
>>> > ...
>>> > int len = 0;
>>> > double X,Y,Z,Count;
>>> > for(i=0, j=0; j<numberOfLabels; i+=3, j++){
>>> >    X = (double)coords[i];
>>> >    Y = (double)coords[i+1];
>>> >    Z = (double)coords[i+2];
>>> >    Count = (double)centroids[j];
>>> >    if(Count>0.0){
>>> >       X = X / Count;
>>> >       Y = Y / Count;
>>> >       Z = Z / Count;
>>> >       len++;
>>> >       graph->AddVertex();  // crashes here.
>>> >       graph->Update();
>>> >       points->InsertNextPoint(X, Y, Z);
>>> >    }
>>> > }
>>> > ...
>>>
>>> I've used this in Linux plenty of times with no problems. If you post
>>> some compilable code I can see if it works on my machine. My initial
>>> bet is that something is going wrong around there, like accessing out
>>> of bounds elements in coords or centroids.
>>>
>>> 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 VTK FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>>
>
>
> --
> | Aashish Chaudhary
> | R&D Engineer
> | Kitware Inc.
> | www.kitware.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100513/0d415550/attachment.htm>


More information about the vtkusers mailing list