From: Philippe E. <ph...@us...> - 2002-12-09 05:04:07
|
Update of /cvsroot/oprofile/oprofile/libutil++ In directory sc8-pr-cvs1:/tmp/cvs-serv21422/libutil++ Modified Files: op_bfd.cpp Log Message: get_symbols() segfault when included symbols is not empty regards, Phil Index: op_bfd.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/libutil++/op_bfd.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- op_bfd.cpp 9 Dec 2002 04:36:31 -0000 1.16 +++ op_bfd.cpp 9 Dec 2002 05:04:05 -0000 1.17 @@ -144,7 +144,6 @@ vector<string> const & included) { uint nr_all_syms; - symbol_index_t i; size_t size; if (!(bfd_get_file_flags(ibfd) & HAS_SYMS)) @@ -166,7 +165,7 @@ // O(N²) behavior when we will filter vector element below list<op_bfd_symbol> symbols; - for (i = 0; i < nr_all_syms; i++) { + for (symbol_index_t i = 0; i < nr_all_syms; i++) { if (interesting_symbol(bfd_syms[i])) { // we can't fill the size member for now, because in // some case it is calculated from the vma of the @@ -233,9 +232,9 @@ for (it = symbols.begin() ; it != symbols.end(); ) { vector<string>::const_iterator v_it = find(included.begin(), included.end(), - syms[i].name()); + it->name()); if (v_it == included.end()) { - cverb << "excluding symbol " << syms[i].name() << endl; + cverb << "excluding symbol " << it->name() << endl; it = symbols.erase(it); } else { ++it; |