Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Segmentation fault in stl_list.h

Reply
Thread Tools

Segmentation fault in stl_list.h

 
 
tikcireviva
Guest
Posts: n/a
 
      09-26-2006
Hi Guys,

I am not sure what's wrong with my program. When I ran it under the
GDB, it shows the following messages , which said that the issue is
from stl_list.h. Does anyone know what's happening in here?

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1540594608 (LWP 1661)]
dist_obj::insert_list (this=0x82d3980, priority=23704) at
stl_list.h:116
116 { _M_node = _M_node->_M_next; }

In my dist_obj::insert_list() , it just insert an character array into
the list, and on the other thread, it gets a copy of the entire list,
then clear the list, and do some manipulation.

I also though about that if this is because of lack of memory on my
machine. I ain't sure how to check that though.

I am using GCC 3.3.3. on my FC2 machine.

Can any one please give me a helping hand? Sorry for any inconvenience.

Best wishes,

Kit

 
Reply With Quote
 
 
 
 
Victor Bazarov
Guest
Posts: n/a
 
      09-26-2006
tikcireviva wrote:
> I am not sure what's wrong with my program.


We're not sure either. You can see it. We cannot.

> When I ran it under the
> GDB, it shows the following messages , which said that the issue is
> from stl_list.h. Does anyone know what's happening in here?
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 1540594608 (LWP 1661)]
> dist_obj::insert_list (this=0x82d3980, priority=23704) at
> stl_list.h:116
> 116 { _M_node = _M_node->_M_next; }


Most likely either 'this' or 'this->_M_node' is an invalid pointer.

> In my dist_obj::insert_list() , it just insert an character array into


How is that character array created? Is it dynamic? Is it automatic?

> the list, and on the other thread, it gets a copy of the entire list,
> then clear the list, and do some manipulation.


Threading is off-topic, unfortunately. C++ assumes a single thread,
a single process, on a single processor machine. All definitions in
the language are based on that.

It is quite possible, though, that your problem is not related to
threading. Does it happen if you don't use threads? Have you actually
tried your algorithm synchronously before you introduced threads?

> I also though about that if this is because of lack of memory on my
> machine. I ain't sure how to check that though.


Change the test case to something smaller (if possible). Watch the
memory consumption of your process. Run it under 'valgrind' or some
other memory debugging tool. But don't spend too much time on it,
unless you actually work with rather large datasets. Most likely
your problem is elsewhere.

> I am using GCC 3.3.3. on my FC2 machine.


That's irrelevant, most often. We here discuss the language, not the
environment in which it's used.

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask


 
Reply With Quote
 
 
 
 
tikcireviva
Guest
Posts: n/a
 
      09-27-2006
Hi Victor,

I am sorry to wrongly post this message in this news group.

Finally, I got the solution.
I've changed my stl::list from
list<pair<char *,size_t> >
to
list<pair<char *,size_t> *>
The char buffer that I've put into the pair<char*,size_t> is usually
1~2kbytes. The frequency of doing a push_back() operation is around
3000 times/sec.

Still, I don't have strong evidence why after I've changed the
pair<char*,size_t> to a pointer, everything will work. Actually I do
want to drill down into the problem, may you please suggest me which
news group I should goto?

I am so sorry for any inconvenience again.

Best regards,

Kit.



Victor Bazarov 寫道:

> tikcireviva wrote:
> > I am not sure what's wrong with my program.

>
> We're not sure either. You can see it. We cannot.
>
> > When I ran it under the
> > GDB, it shows the following messages , which said that the issue is
> > from stl_list.h. Does anyone know what's happening in here?
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > [Switching to Thread 1540594608 (LWP 1661)]
> > dist_obj::insert_list (this=0x82d3980, priority=23704) at
> > stl_list.h:116
> > 116 { _M_node = _M_node->_M_next; }

>
> Most likely either 'this' or 'this->_M_node' is an invalid pointer.
>
> > In my dist_obj::insert_list() , it just insert an character array into

>
> How is that character array created? Is it dynamic? Is it automatic?
>
> > the list, and on the other thread, it gets a copy of the entire list,
> > then clear the list, and do some manipulation.

>
> Threading is off-topic, unfortunately. C++ assumes a single thread,
> a single process, on a single processor machine. All definitions in
> the language are based on that.
>
> It is quite possible, though, that your problem is not related to
> threading. Does it happen if you don't use threads? Have you actually
> tried your algorithm synchronously before you introduced threads?
>
> > I also though about that if this is because of lack of memory on my
> > machine. I ain't sure how to check that though.

>
> Change the test case to something smaller (if possible). Watch the
> memory consumption of your process. Run it under 'valgrind' or some
> other memory debugging tool. But don't spend too much time on it,
> unless you actually work with rather large datasets. Most likely
> your problem is elsewhere.
>
> > I am using GCC 3.3.3. on my FC2 machine.

>
> That's irrelevant, most often. We here discuss the language, not the
> environment in which it's used.
>
> V
> --
> Please remove capital 'A's when replying by e-mail
> I do not respond to top-posted replies, please don't ask


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Segmentation fault using Firefox 15.0.2 Keith Lee Firefox 3 04-29-2006 05:45 PM
Xerces on Solaris - Segmentation fault ldvmbs@gmail.com XML 0 05-16-2005 07:21 AM
Xerces XML Parser Segmentation fault with Java Pud XML 0 11-06-2003 05:07 PM
Intel Xeon + Linux + IBM sdk 1.3.1 - getting Segmentation fault Alex Hunsley Java 17 11-06-2003 12:12 AM
Re: segmentation fault exception handling Ivan Vecerina C++ 0 06-29-2003 10:56 PM



Advertisments