|
From: Banibrata D. <du...@in...> - 2004-04-13 05:17:37
|
hi,
=20
i have a simple C++ program that uses STL. "valgrind" seems to crash on =
it.
what is the reason ? is there any workaround ?
=20
<program-start>
=20
#include <map>
#include <functional>
#include <utility>
#include <iostream>
using namespace std;
=20
typedef pair<int,int> int_pair;
=20
class data_type {
public:
data_type(int_pair* p, char d) : key_part(p), data(d) {}
data_type(char d) : key_part(0), data(d) {}
data_type() : key_part(0), data(0) {}
int_pair* getKey() { return key_part;}
char getData() {return data;}
private:
int_pair *key_part;
char data;
};
=20
typedef map<int_pair,data_type> ip_map;
=20
int main()
{
ip_map _map;
data_type *_dt=3D0;
=20
int_pair *key=3D0;
=20
for (int i=3D0,j=3D3; i < 5; i+=3D2, j++)
{
key =3D new int_pair(i, j);
_dt =3D new data_type(key, ('a' + char(i)));
_map[*key] =3D *_dt;
}
=20
for (ip_map::iterator iter =3D _map.begin(); iter !=3D =
_map.end();
iter++)
{
cout << "map[" << iter->first.first << "," <<
iter->first.second << "] =3D (" <<
iter->second.getKey() << ", " <<
iter->second.getData() << ")" << endl;
}
return 0;
}
</program-stop>
=20
=20
<valgrind-output-start>
[dutta@pttlnx1 maps]$ valgrind --tool=3Dmemcheck -v --demangle=3Dyes =
./a.out=20
=3D=3D24620=3D=3D Memcheck, a memory error detector for x86-linux.
=3D=3D24620=3D=3D Copyright (C) 2002-2004, and GNU GPL'd, by Julian =
Seward.
=3D=3D24620=3D=3D Using valgrind-2.1.1, a program supervision framework =
for
x86-linux.
=3D=3D24620=3D=3D Copyright (C) 2000-2004, and GNU GPL'd, by Julian =
Seward.
=3D=3D24620=3D=3D Valgrind library directory: /usr/local/lib/valgrind
=3D=3D24620=3D=3D Command line
=3D=3D24620=3D=3D ./a.out
=3D=3D24620=3D=3D Startup, with flags:
=3D=3D24620=3D=3D --tool=3Dmemcheck
=3D=3D24620=3D=3D -v
=3D=3D24620=3D=3D --demangle=3Dyes
=3D=3D24620=3D=3D Reading syms from /home/dutta/work/cpp_prac/maps/a.out =
(0x8048000)
@@ don't know what type '_' is
@@ parsing
__rf__Ct17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4=
pai
r2ZiZiZ9data_typeZPt4pair2
ZCt4pair2ZiZiZ9data_type;2B.;operator++::(0,187)=3D##(0,179);:__pp__t17_R=
b_tre
e_iterator3Zt4pair2ZCt4pair2ZiZiZ9data
_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZiZ9data_type;2=
A.(
0,188)=3D##(0,105);:__pp__t17_Rb_tree_it
erator3Zt4pair2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZ=
Pt4
pair2ZCt4pair2ZiZiZ9data_typei;2A.;ope
rator--::(0,187):__mm__t17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_t=
ype
ZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4p
air2ZCt4pair2ZiZiZ9data_type;2A.(0,188):__mm__t17_Rb_tree_iterator3Zt4pai=
r2Z
Ct4pair2ZiZiZ9data_typeZRt4pair2ZCt4pa
ir2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZiZ9data_typei;2A.;; gave NULL =
type
(_rf__Ct17_Rb_tree_iterator3Zt4pair2ZCt4
pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2Zi=
ZiZ
9data_type;2B.;operator++::(0,187)=3D##(
0,179);:__pp__t17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_typeZRt4pa=
ir2
ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4p
air2ZiZiZ9data_type;2A.(0,188)=3D##(0,105);:__pp__t17_Rb_tree_iterator3Zt=
4pair
2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4
pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZiZ9data_typei;2A.;operator--::(0=
,18
7):__mm__t17_Rb_tree_iterator3Zt4pair2
ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pai=
r2Z
iZiZ9data_type;2A.(0,188):__mm__t17_Rb
_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9da=
ta_
typeZPt4pair2ZCt4pair2ZiZiZ9data_typei
;2A.;; remains)
=20
@@ expected ':' at struct method MANGLE-ARGS
(remains=3D"rf__Ct17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_type
ZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZiZ9data_type;2B.;op=
era
tor++::(0,187)=3D##(0,179);:__pp__t17_Rb
_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9da=
ta_
typeZPt4pair2ZCt4pair2ZiZiZ9data_type;
2A.(0,188)=3D##(0,105);:__pp__t17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ=
9data
_typeZRt4pair2ZCt4pair2ZiZiZ9data_type
ZPt4pair2ZCt4pair2ZiZiZ9data_typei;2A.;operator--::(0,187):__mm__t17_Rb_t=
ree
_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_
typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZiZ9data_type;2A=
.(0
,188):__mm__t17_Rb_tree_iterator3Zt4pa
ir2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4=
pai
r2ZiZiZ9data_typei;2A.;;")
@@ parsing
(0,105)=3Ds4!1,020,(2,9);operator=3D::(0,178)=3D##(0,179)=3D&(0,105);:__a=
s__t17_Rb_t
ree_iterator3Zt4pair2ZCt4p
air2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZ=
iZ9
data_typeRCt17_Rb_tree_iterator3Zt4pai
r2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4p=
air
2ZiZiZ9data_type;2A.;_Rb_tree_iterator
::(0,180)=3D##(0,181)=3D*(0,105);:__t17_Rb_tree_iterator3Zt4pair2ZCt4pair=
2ZiZiZ9
data_typeZRt4pair2ZCt4pair2ZiZiZ9data_
typeZPt4pair2ZCt4pair2ZiZiZ9data_type;2A.(0,182)=3D##(0,181);:__t17_Rb_tr=
ee_it
erator3Zt4pair2ZCt4pair2ZiZiZ9data_typ
eZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZiZ9data_typePt13_R=
b_t
ree_node1Zt4pair2ZCt4pair2ZiZiZ9data_t
ype;2A.(0,183)=3D##(0,181);:__t17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ=
9data
_typeZRt4pair2ZCt4pair2ZiZiZ9data_type
ZPt4pair2ZCt4pair2ZiZiZ9data_typeRCt17_Rb_tree_iterator3Zt4pair2ZCt4pair2=
ZiZ
iZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9da
ta_typeZPt4pair2ZCt4pair2ZiZiZ9data_type;2A.;operator*::(0,184)=3D##(0,93=
);:__
ml__Ct17_Rb_tree_iterator3Zt4pair2ZCt4
pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2Zi=
ZiZ
9data_type;2B.;operator->::(0,185)=3D##(
0,186)=3D*(0,94);:__rf__Ct17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9data=
_type
ZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4p
air2ZCt4pair2ZiZiZ9data_type;2B.;operator++::(0,187)=3D##(0,179);:__pp__t=
17_Rb
_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9
data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZiZ9data_ty=
pe;
2A.(0,188)=3D##(0,105);:__pp__t17_Rb_tre
e_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_t=
ype
ZPt4pair2ZCt4pair2ZiZiZ9data_typei;2A.
;operator--::(0,187):__mm__t17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9da=
ta_
typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZ
Pt4pair2ZCt4pair2ZiZiZ9data_type;2A.(0,188):__mm__t17_Rb_tree_iterator3Zt=
4pa
ir2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZC
t4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZiZ9data_typei;2A.;; gave NULL
type (s4!1,020,(2,9);operator=3D::(0,178)=3D#
#(0,179)=3D&(0,105);:__as__t17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9da=
ta_ty
peZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt
4pair2ZCt4pair2ZiZiZ9data_typeRCt17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZ=
iZ9
data_typeZRt4pair2ZCt4pair2ZiZiZ9data_
typeZPt4pair2ZCt4pair2ZiZiZ9data_type;2A.;_Rb_tree_iterator::(0,180)=3D##=
(0,18
1)=3D*(0,105);:__t17_Rb_tree_iterator3Zt
4pair2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2Z=
Ct4
pair2ZiZiZ9data_type;2A.(0,182)=3D##(0,1
81);:__t17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4=
pai
r2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZ
iZ9data_typePt13_Rb_tree_node1Zt4pair2ZCt4pair2ZiZiZ9data_type;2A.(0,183)=
=3D##
(0,181);:__t17_Rb_tree_iterator3Zt4pai
r2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4p=
air
2ZiZiZ9data_typeRCt17_Rb_tree_iterator
3Zt4pair2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pai=
r2Z
Ct4pair2ZiZiZ9data_type;2A.;operator*:
:(0,184)=3D##(0,93);:__ml__Ct17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9d=
ata_t
ypeZRt4pair2ZCt4pair2ZiZiZ9data_typeZP
t4pair2ZCt4pair2ZiZiZ9data_type;2B.;operator->::(0,185)=3D##(0,186)=3D*(0=
,94);:_
_rf__Ct17_Rb_tree_iterator3Zt4pair2ZCt
4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2Z=
iZi
Z9data_type;2B.;operator++::(0,187)=3D##
(0,179);:__pp__t17_Rb_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_typeZRt4p=
air
2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4
pair2ZiZiZ9data_type;2A.(0,188)=3D##(0,105);:__pp__t17_Rb_tree_iterator3Z=
t4pai
r2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt
4pair2ZiZiZ9data_typeZPt4pair2ZCt4pair2ZiZiZ9data_typei;2A.;operator--::(=
0,1
87):__mm__t17_Rb_tree_iterator3Zt4pair
2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9data_typeZPt4pair2ZCt4pa=
ir2
ZiZiZ9data_type;2A.(0,188):__mm__t17_R
b_tree_iterator3Zt4pair2ZCt4pair2ZiZiZ9data_typeZRt4pair2ZCt4pair2ZiZiZ9d=
ata
_typeZPt4pair2ZCt4pair2ZiZiZ9data_type
i;2A.;; remains)
--24620-- INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - =
exiting
--24620-- si_code=3D1 Fault EIP: 0xB803A9CB (); Faulting address: 0x0
valgrind: the `impossible' happened:
Killed by fatal signal
Basic block ctr is approximately 0
=3D=3D24620=3D=3D at 0xB802D8A7: ???
=3D=3D24620=3D=3D by 0xB802D8A6: ???
=3D=3D24620=3D=3D by 0xB802D8BC: ???
=3D=3D24620=3D=3D by 0xB803366A: ???
=20
sched status:
=20
Thread 1: status =3D Runnable, associated_mx =3D 0x0, associated_cv =3D =
0x0
=3D=3D24620=3D=3D at 0x3C001E90: ???
=20
Note: see also the FAQ.txt in the source distribution.
It contains workarounds to several common problems.
=20
If that doesn't help, please report this bug to: valgrind.kde.org
=20
In the bug report, send all the above text, the valgrind
version, and what Linux distro you are using. Thanks.
=20
</valgrind-output-stop>
=20
=20
thanks & regards,
bdutta
=20
thanks & regards,
Banibrata Dutta
Hewlett-Packard ISO Pvt. Ltd,
29, Cunningham Road,
Bangalore - 560052, India.
Tel: +91-80-22051796
=20
=20
|