<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Run time issues with STL string class in Operating System - Linux</title>
    <link>https://community.hpe.com/t5/operating-system-linux/run-time-issues-with-stl-string-class/m-p/4063679#M64882</link>
    <description>Hi,&lt;BR /&gt;&lt;BR /&gt;I'm facing some problem while executing C++ binary.  &lt;BR /&gt;&lt;BR /&gt;The below is the environment under which our code is being compiled and being run:&lt;BR /&gt;&lt;BR /&gt;OS :  &lt;BR /&gt;&lt;BR /&gt;- Red Hat Enterprise Linux ES release 4 (Nahant Update 4)&lt;BR /&gt;&lt;BR /&gt;Thread model: &lt;BR /&gt;&lt;BR /&gt;- posix&lt;BR /&gt;&lt;BR /&gt;gcc version :&lt;BR /&gt;&lt;BR /&gt;3.4.3 20041212 (Red Hat 3.4.3-9.EL4)&lt;BR /&gt;&lt;BR /&gt;glibc :&lt;BR /&gt;&lt;BR /&gt;glibc-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;glibc-devel-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;glibc-kernheaders-2.4-9.1.98.EL&lt;BR /&gt;&lt;BR /&gt;glibc-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;glibc-devel-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;compat-glibc-2.3.2-95.30&lt;BR /&gt;&lt;BR /&gt;glibc-utils-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;glibc-common-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;compat-glibc-headers-2.3.2-95.30&lt;BR /&gt;&lt;BR /&gt;glibc-headers-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;glibc-profile-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;compat-glibc-2.3.2-95.30&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;and the below is the code snippet. (it is not actual code, just a kind of example like our code ).&lt;BR /&gt;&lt;BR /&gt;Code Snippet:&lt;BR /&gt;&lt;BR /&gt;class A&lt;BR /&gt;&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;public:&lt;BR /&gt;&lt;BR /&gt; A() : namePresent(false) {};&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;            virtual void setName(const string&amp;amp; name)&lt;BR /&gt;&lt;BR /&gt;            {&lt;BR /&gt;&lt;BR /&gt;                        this -&amp;gt; name = name;&lt;BR /&gt;&lt;BR /&gt;                        namePresent = true;&lt;BR /&gt;&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt;            virtual const string&amp;amp; getName()&lt;BR /&gt;&lt;BR /&gt;            {&lt;BR /&gt;&lt;BR /&gt;                        return name;&lt;BR /&gt;&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;private:&lt;BR /&gt;&lt;BR /&gt;            string name;&lt;BR /&gt;&lt;BR /&gt;            bool namePresent;&lt;BR /&gt;&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;class B : public A&lt;BR /&gt;&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;public:&lt;BR /&gt;&lt;BR /&gt;            B() : A(){&lt;BR /&gt;&lt;BR /&gt;                        .... // some other initialisation.&lt;BR /&gt;&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;class C : public B&lt;BR /&gt;&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;public:&lt;BR /&gt;&lt;BR /&gt;            C(const string &amp;amp;name1) : B()&lt;BR /&gt;&lt;BR /&gt;            {&lt;BR /&gt;&lt;BR /&gt;            ------&lt;BR /&gt;&lt;BR /&gt;            -------   &lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;                        initialise(name1);&lt;BR /&gt;&lt;BR /&gt;            ------&lt;BR /&gt;&lt;BR /&gt;            -------   &lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;int initialise(const string &amp;amp;name1)&lt;BR /&gt;&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;            ------&lt;BR /&gt;&lt;BR /&gt;            -------   &lt;BR /&gt;&lt;BR /&gt;setName(name1)&lt;BR /&gt;&lt;BR /&gt;--------&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;            void setName(const string&amp;amp; name2)&lt;BR /&gt;&lt;BR /&gt;            {&lt;BR /&gt;&lt;BR /&gt;                       &lt;BR /&gt;&lt;BR /&gt;A :: setName(name2);&lt;BR /&gt;&lt;BR /&gt;            &lt;BR /&gt;&lt;BR /&gt;                        .....       // some code&lt;BR /&gt;&lt;BR /&gt;                        .....       &lt;BR /&gt;&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;main()&lt;BR /&gt;&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;            C* temp = new C("XYZ");&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;This is an example to show the hierarchy of the class inheritence that is there in our code.&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt; We have been able to create an pointer object of the class C and also been able to call the setName function of the class A for the first object.&lt;BR /&gt;&lt;BR /&gt; But for the second time(rather second pointer object) it is giving the core dump. The below is the gdb of the core: &lt;BR /&gt;&lt;BR /&gt;#0  0xffffe405 in __kernel_vsyscall ()&lt;BR /&gt;&lt;BR /&gt;(gdb) bt&lt;BR /&gt;&lt;BR /&gt;#0  0xffffe405 in __kernel_vsyscall ()&lt;BR /&gt;&lt;BR /&gt;#1  0x005007a5 in raise () from /lib/tls/libc.so.6&lt;BR /&gt;&lt;BR /&gt;#2  0x00502209 in abort () from /lib/tls/libc.so.6&lt;BR /&gt;&lt;BR /&gt;#3  0x0053471a in __libc_message () from /lib/tls/libc.so.6&lt;BR /&gt;&lt;BR /&gt;#4  0x0053afbf in _int_free () from /lib/tls/libc.so.6&lt;BR /&gt;&lt;BR /&gt;#5  0x0053b33a in free () from /lib/tls/libc.so.6&lt;BR /&gt;&lt;BR /&gt;#6  0x0099ffd1 in operator delete () from /usr/lib/libstdc++.so.6&lt;BR /&gt;&lt;BR /&gt;#7  0x00981cff in std::string::_Rep::_M_destroy () from /usr/lib/libstdc++.so.6&lt;BR /&gt;&lt;BR /&gt;#8  0x00981e11 in std::string::assign () from /usr/lib/libstdc++.so.6&lt;BR /&gt;&lt;BR /&gt;#9  0x00981e61 in std::string::operator= () from /usr/lib/libstdc++.so.6&lt;BR /&gt;&lt;BR /&gt;#10 0x08158337 in mt::Task::setName (this=0x8234eb0, name=@0xffff9f90) at Task.cpp:38&lt;BR /&gt;&lt;BR /&gt;#11 0x081600da in timer::TimerManager::setNameNew (this=0x8234eb0, p_name2=@0xffff9f90) at Timers.cpp:471&lt;BR /&gt;&lt;BR /&gt;#12 0x0815fe58 in timer::TimerManager::initialise (this=0x8234eb0, name1=@0xffff9f90) at Timers.cpp:431&lt;BR /&gt;&lt;BR /&gt;#13 0x0815edd3 in TimerManager (this=0x8234eb0, p_timerThreadsCount=1, p_name1=@0xffff9f90, p_useSignals=true,&lt;BR /&gt;&lt;BR /&gt;    p_timeoutProcessorFactory=0x0) at Timers.cpp:326&lt;BR /&gt;&lt;BR /&gt;#14 0x0805c4a6 in VoiceFilter::initialiseInterface (this=0x8201420) at VoiceFilter.ecpp:653&lt;BR /&gt;&lt;BR /&gt;#15 0x08070fe6 in VoiceFilterBase::initialise (this=0x8201420) at VoiceFilterBase.ecpp:302&lt;BR /&gt;&lt;BR /&gt;#16 0x0806498f in main (argc=2, argv=0x8201420) at main.ecpp:62&lt;BR /&gt;&lt;BR /&gt;If we set the environment variable MALLOC_CHECK_  to 1 then we donâ  t see any such issue and binary works fine.&lt;BR /&gt;&lt;BR /&gt;Interestingly we randomly see this behavior.&lt;BR /&gt;&lt;BR /&gt;Any help very much appreciated.&lt;BR /&gt;&lt;BR /&gt;( The same is attached here in a file as well)&lt;BR /&gt;Regards,&lt;BR /&gt;Sumanth&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Fri, 31 Aug 2007 08:52:03 GMT</pubDate>
    <dc:creator>sumanth_2</dc:creator>
    <dc:date>2007-08-31T08:52:03Z</dc:date>
    <item>
      <title>Run time issues with STL string class</title>
      <link>https://community.hpe.com/t5/operating-system-linux/run-time-issues-with-stl-string-class/m-p/4063679#M64882</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;I'm facing some problem while executing C++ binary.  &lt;BR /&gt;&lt;BR /&gt;The below is the environment under which our code is being compiled and being run:&lt;BR /&gt;&lt;BR /&gt;OS :  &lt;BR /&gt;&lt;BR /&gt;- Red Hat Enterprise Linux ES release 4 (Nahant Update 4)&lt;BR /&gt;&lt;BR /&gt;Thread model: &lt;BR /&gt;&lt;BR /&gt;- posix&lt;BR /&gt;&lt;BR /&gt;gcc version :&lt;BR /&gt;&lt;BR /&gt;3.4.3 20041212 (Red Hat 3.4.3-9.EL4)&lt;BR /&gt;&lt;BR /&gt;glibc :&lt;BR /&gt;&lt;BR /&gt;glibc-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;glibc-devel-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;glibc-kernheaders-2.4-9.1.98.EL&lt;BR /&gt;&lt;BR /&gt;glibc-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;glibc-devel-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;compat-glibc-2.3.2-95.30&lt;BR /&gt;&lt;BR /&gt;glibc-utils-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;glibc-common-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;compat-glibc-headers-2.3.2-95.30&lt;BR /&gt;&lt;BR /&gt;glibc-headers-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;glibc-profile-2.3.4-2.25&lt;BR /&gt;&lt;BR /&gt;compat-glibc-2.3.2-95.30&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;and the below is the code snippet. (it is not actual code, just a kind of example like our code ).&lt;BR /&gt;&lt;BR /&gt;Code Snippet:&lt;BR /&gt;&lt;BR /&gt;class A&lt;BR /&gt;&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;public:&lt;BR /&gt;&lt;BR /&gt; A() : namePresent(false) {};&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;            virtual void setName(const string&amp;amp; name)&lt;BR /&gt;&lt;BR /&gt;            {&lt;BR /&gt;&lt;BR /&gt;                        this -&amp;gt; name = name;&lt;BR /&gt;&lt;BR /&gt;                        namePresent = true;&lt;BR /&gt;&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt;            virtual const string&amp;amp; getName()&lt;BR /&gt;&lt;BR /&gt;            {&lt;BR /&gt;&lt;BR /&gt;                        return name;&lt;BR /&gt;&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;private:&lt;BR /&gt;&lt;BR /&gt;            string name;&lt;BR /&gt;&lt;BR /&gt;            bool namePresent;&lt;BR /&gt;&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;class B : public A&lt;BR /&gt;&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;public:&lt;BR /&gt;&lt;BR /&gt;            B() : A(){&lt;BR /&gt;&lt;BR /&gt;                        .... // some other initialisation.&lt;BR /&gt;&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;class C : public B&lt;BR /&gt;&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;public:&lt;BR /&gt;&lt;BR /&gt;            C(const string &amp;amp;name1) : B()&lt;BR /&gt;&lt;BR /&gt;            {&lt;BR /&gt;&lt;BR /&gt;            ------&lt;BR /&gt;&lt;BR /&gt;            -------   &lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;                        initialise(name1);&lt;BR /&gt;&lt;BR /&gt;            ------&lt;BR /&gt;&lt;BR /&gt;            -------   &lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;int initialise(const string &amp;amp;name1)&lt;BR /&gt;&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;            ------&lt;BR /&gt;&lt;BR /&gt;            -------   &lt;BR /&gt;&lt;BR /&gt;setName(name1)&lt;BR /&gt;&lt;BR /&gt;--------&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;            void setName(const string&amp;amp; name2)&lt;BR /&gt;&lt;BR /&gt;            {&lt;BR /&gt;&lt;BR /&gt;                       &lt;BR /&gt;&lt;BR /&gt;A :: setName(name2);&lt;BR /&gt;&lt;BR /&gt;            &lt;BR /&gt;&lt;BR /&gt;                        .....       // some code&lt;BR /&gt;&lt;BR /&gt;                        .....       &lt;BR /&gt;&lt;BR /&gt;            }&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;main()&lt;BR /&gt;&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;            C* temp = new C("XYZ");&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;This is an example to show the hierarchy of the class inheritence that is there in our code.&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt; We have been able to create an pointer object of the class C and also been able to call the setName function of the class A for the first object.&lt;BR /&gt;&lt;BR /&gt; But for the second time(rather second pointer object) it is giving the core dump. The below is the gdb of the core: &lt;BR /&gt;&lt;BR /&gt;#0  0xffffe405 in __kernel_vsyscall ()&lt;BR /&gt;&lt;BR /&gt;(gdb) bt&lt;BR /&gt;&lt;BR /&gt;#0  0xffffe405 in __kernel_vsyscall ()&lt;BR /&gt;&lt;BR /&gt;#1  0x005007a5 in raise () from /lib/tls/libc.so.6&lt;BR /&gt;&lt;BR /&gt;#2  0x00502209 in abort () from /lib/tls/libc.so.6&lt;BR /&gt;&lt;BR /&gt;#3  0x0053471a in __libc_message () from /lib/tls/libc.so.6&lt;BR /&gt;&lt;BR /&gt;#4  0x0053afbf in _int_free () from /lib/tls/libc.so.6&lt;BR /&gt;&lt;BR /&gt;#5  0x0053b33a in free () from /lib/tls/libc.so.6&lt;BR /&gt;&lt;BR /&gt;#6  0x0099ffd1 in operator delete () from /usr/lib/libstdc++.so.6&lt;BR /&gt;&lt;BR /&gt;#7  0x00981cff in std::string::_Rep::_M_destroy () from /usr/lib/libstdc++.so.6&lt;BR /&gt;&lt;BR /&gt;#8  0x00981e11 in std::string::assign () from /usr/lib/libstdc++.so.6&lt;BR /&gt;&lt;BR /&gt;#9  0x00981e61 in std::string::operator= () from /usr/lib/libstdc++.so.6&lt;BR /&gt;&lt;BR /&gt;#10 0x08158337 in mt::Task::setName (this=0x8234eb0, name=@0xffff9f90) at Task.cpp:38&lt;BR /&gt;&lt;BR /&gt;#11 0x081600da in timer::TimerManager::setNameNew (this=0x8234eb0, p_name2=@0xffff9f90) at Timers.cpp:471&lt;BR /&gt;&lt;BR /&gt;#12 0x0815fe58 in timer::TimerManager::initialise (this=0x8234eb0, name1=@0xffff9f90) at Timers.cpp:431&lt;BR /&gt;&lt;BR /&gt;#13 0x0815edd3 in TimerManager (this=0x8234eb0, p_timerThreadsCount=1, p_name1=@0xffff9f90, p_useSignals=true,&lt;BR /&gt;&lt;BR /&gt;    p_timeoutProcessorFactory=0x0) at Timers.cpp:326&lt;BR /&gt;&lt;BR /&gt;#14 0x0805c4a6 in VoiceFilter::initialiseInterface (this=0x8201420) at VoiceFilter.ecpp:653&lt;BR /&gt;&lt;BR /&gt;#15 0x08070fe6 in VoiceFilterBase::initialise (this=0x8201420) at VoiceFilterBase.ecpp:302&lt;BR /&gt;&lt;BR /&gt;#16 0x0806498f in main (argc=2, argv=0x8201420) at main.ecpp:62&lt;BR /&gt;&lt;BR /&gt;If we set the environment variable MALLOC_CHECK_  to 1 then we donâ  t see any such issue and binary works fine.&lt;BR /&gt;&lt;BR /&gt;Interestingly we randomly see this behavior.&lt;BR /&gt;&lt;BR /&gt;Any help very much appreciated.&lt;BR /&gt;&lt;BR /&gt;( The same is attached here in a file as well)&lt;BR /&gt;Regards,&lt;BR /&gt;Sumanth&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Fri, 31 Aug 2007 08:52:03 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-linux/run-time-issues-with-stl-string-class/m-p/4063679#M64882</guid>
      <dc:creator>sumanth_2</dc:creator>
      <dc:date>2007-08-31T08:52:03Z</dc:date>
    </item>
  </channel>
</rss>

