G
Ganesh Gella
Hi All,
I am using g++ on Linux, and my code has lot of vectors each stores a
particualr type of structure. (Structure internally had some vectors).
When I am trying to push_back an element to a one of the vectors in
the parent strutcure, it always core dumps on Linux and HP. On Solaris
the same code is working fine without any problem.
My code is actually an API, and this problem is seen only by few
callers and not by everybody on linux/HP.
Here is the stack trace of core dump, can some of you help me out
here..
#0 0x080ff6bd in basic_string<char, string_char_traits<char>,
__default_alloc_template<true, 0> >::Rep::grab (this=0x3f0dca1e)
at /usr/include/g++-3/std/bastring.h:75
75 charT* grab () { if (selfish) return clone (); ++ref;
return data (); }
(gdb) where
#0 0x080ff6bd in basic_string<char, string_char_traits<char>,
__default_alloc_template<true, 0> >::Rep::grab (this=0x3f0dca1e)
at /usr/include/g++-3/std/bastring.h:75
#1 0x080fe985 in basic_string<char, string_char_traits<char>,
__default_alloc_template<true, 0> >::basic_string (this=0x828ab24,
str=@0xbfffedbc)
at /usr/include/g++-3/std/bastring.h:177
#2 0x0810670e in ImageData::ImageData (this=0x828ab18,
_ctor_arg=@0xbfffedb0)
at /usr/include/g++-3/stl_construct.h:48
#3 0x080ffc8b in void construct<ImageData, ImageData> (__p=0x828ab18,
__value=@0xbfffedb0) at /usr/include/g++-3/stl_construct.h:48
at /usr/include/g++-3/stl_vector.h:604
#5 0x080febab in vector<ImageData, allocator<ImageData> >:ush_back
(
this=0xbfffee58, __x=@0xbfffedb0) at
/usr/include/g++-3/stl_vector.h:325
#6 0x0809072b in PickListReports::makeModel (this=0x82927a8)
at picklistreports.cpp:820
#7 0x08080f3b in vreport (robotNum=0x0, vaultName=0x828e028 "V1",
profileName=0x0, sessionid=1, reportid=-1, reportFormat=0,
distInfo=0x0,
argInfo=0x0) at vreport.cpp:350
#8 0x0807fb1f in vreport (robot=0x0, vault=0x828e028 "V1",
profile=0x0,
sessionid=1) at vreport.cpp:71
#9 0x08071f28 in DoReport (rptcmd=0xbffffa79 "picking_library",
sessionId=1,
reportFileName=0x0) at reports.cpp:85
#10 0x08079873 in new_main (argC=9, argV=0xbffff914) at vltrun.cpp:431
#11 0x080794e8 in main (argC=9, argV=0xbffff914) at vltrun.cpp:342
#12 0x410b8507 in __libc_start_main (main=0x80794d4 <main>, argc=9,
ubp_av=0xbffff914, init=0x804fd28 <_init>, fini=0x812be24 <_fini>,
rtld_fini=0x4000dc14 <_dl_fini>, stack_end=0xbffff90c)
at ../sysdeps/generic/libc-start.c:129
#6 is the place where I am using push_back.
I tried using stlport instead of g++'s STL but no use it core dumps
at the same place always.
Your help is highly appreciated in this regard.
Thanks
Ganesh.
I am using g++ on Linux, and my code has lot of vectors each stores a
particualr type of structure. (Structure internally had some vectors).
When I am trying to push_back an element to a one of the vectors in
the parent strutcure, it always core dumps on Linux and HP. On Solaris
the same code is working fine without any problem.
My code is actually an API, and this problem is seen only by few
callers and not by everybody on linux/HP.
Here is the stack trace of core dump, can some of you help me out
here..
#0 0x080ff6bd in basic_string<char, string_char_traits<char>,
__default_alloc_template<true, 0> >::Rep::grab (this=0x3f0dca1e)
at /usr/include/g++-3/std/bastring.h:75
75 charT* grab () { if (selfish) return clone (); ++ref;
return data (); }
(gdb) where
#0 0x080ff6bd in basic_string<char, string_char_traits<char>,
__default_alloc_template<true, 0> >::Rep::grab (this=0x3f0dca1e)
at /usr/include/g++-3/std/bastring.h:75
#1 0x080fe985 in basic_string<char, string_char_traits<char>,
__default_alloc_template<true, 0> >::basic_string (this=0x828ab24,
str=@0xbfffedbc)
at /usr/include/g++-3/std/bastring.h:177
#2 0x0810670e in ImageData::ImageData (this=0x828ab18,
_ctor_arg=@0xbfffedb0)
at /usr/include/g++-3/stl_construct.h:48
#3 0x080ffc8b in void construct<ImageData, ImageData> (__p=0x828ab18,
__value=@0xbfffedb0) at /usr/include/g++-3/stl_construct.h:48
this=0xbfffee58, __position=0x0, __x=@0xbfffedb0)#4 0x080ffda2 in vector said:::_M_insert_aux (
at /usr/include/g++-3/stl_vector.h:604
#5 0x080febab in vector<ImageData, allocator<ImageData> >:ush_back
(
this=0xbfffee58, __x=@0xbfffedb0) at
/usr/include/g++-3/stl_vector.h:325
#6 0x0809072b in PickListReports::makeModel (this=0x82927a8)
at picklistreports.cpp:820
#7 0x08080f3b in vreport (robotNum=0x0, vaultName=0x828e028 "V1",
profileName=0x0, sessionid=1, reportid=-1, reportFormat=0,
distInfo=0x0,
argInfo=0x0) at vreport.cpp:350
#8 0x0807fb1f in vreport (robot=0x0, vault=0x828e028 "V1",
profile=0x0,
sessionid=1) at vreport.cpp:71
#9 0x08071f28 in DoReport (rptcmd=0xbffffa79 "picking_library",
sessionId=1,
reportFileName=0x0) at reports.cpp:85
#10 0x08079873 in new_main (argC=9, argV=0xbffff914) at vltrun.cpp:431
#11 0x080794e8 in main (argC=9, argV=0xbffff914) at vltrun.cpp:342
#12 0x410b8507 in __libc_start_main (main=0x80794d4 <main>, argc=9,
ubp_av=0xbffff914, init=0x804fd28 <_init>, fini=0x812be24 <_fini>,
rtld_fini=0x4000dc14 <_dl_fini>, stack_end=0xbffff90c)
at ../sysdeps/generic/libc-start.c:129
#6 is the place where I am using push_back.
I tried using stlport instead of g++'s STL but no use it core dumps
at the same place always.
Your help is highly appreciated in this regard.
Thanks
Ganesh.