I reproduced this error on two further debian sid installations (but not fresh installed ones)
The example source code: #include <iostream> using std::cerr; using std::cout; using std::endl; int main() { try { int a_number = 7; throw a_number; } catch(int number_exception) { cerr << "exception caught: number was " << number_exception << endl; } catch(...) { cerr << "unknown exception caught" << endl; } return 0; } The default output is correct: /tmp$ ./test_g++_exceptions exception caught: number was 7 valgrind reports the same as before: /tmp$ valgrind ./test_g++_exceptions ==7362== Memcheck, a memory error detector for x86-linux. ==7362== Copyright (C) 2002-2003, and GNU GPL'd, by Julian Seward. ==7362== Using valgrind-2.1.0, a program supervision framework for x86-linux. ==7362== Copyright (C) 2000-2003, and GNU GPL'd, by Julian Seward. ==7362== Estimated CPU clock rate is 1924 MHz ==7362== For more details, rerun with: -v ==7362== ==7362== Invalid read of size 4 ==7362== at 0x4032FB70: (within /lib/libgcc_s.so.1) ==7362== by 0x4043A017: __dl_iterate_phdr (dl-iteratephdr.c:50) ==7362== by 0x4032FF04: _Unwind_Find_FDE (in /lib/libgcc_s.so.1) ==7362== by 0x4032DA44: (within /lib/libgcc_s.so.1) ==7362== Address 0xFFFFE034 is not stack'd, malloc'd or free'd ==7362== ==7362== Invalid read of size 4 ==7362== at 0x4032FE48: (within /lib/libgcc_s.so.1) ==7362== by 0x4043A017: __dl_iterate_phdr (dl-iteratephdr.c:50) ==7362== by 0x4032FF04: _Unwind_Find_FDE (in /lib/libgcc_s.so.1) ==7362== by 0x4032DA44: (within /lib/libgcc_s.so.1) ==7362== Address 0xFFFFE03C is not stack'd, malloc'd or free'd exception caught: number was 7 ==7362== ==7362== ERROR SUMMARY: 12 errors from 2 contexts (suppressed: 0 from 0) ==7362== malloc/free: in use at exit: 0 bytes in 0 blocks. ==7362== malloc/free: 1 allocs, 1 frees, 84 bytes allocated. ==7362== For a detailed leak analysis, rerun with: --leak-check=yes ==7362== For counts of detected errors, rerun with: -v The output string is also printed. My sid is just upgraded (todays packages). The used versions are: g++ --version -> g++ (GCC) 3.3.3 20040110 (prerelease) (Debian) package version: 4:3.3.2-2 g++-3.3 --version -> g++-3.3 (GCC) 3.3.3 20040110 (prerelease) (Debian) package version: 1:3.3.3-0pre2 libgcc1 package version: 1:3.3.3-0pre2 libc6 package version: 2.3.2.ds1-10 valgrind --version -> valgrind-2.1.0 package version: 1:2.1.0-2 Now the funny thing: g++-3.2 -> same error g++-3.0 -> same error My kernel is 2.6.0 release. The cpu is an AthlonXP. Currently I have no clue in which package the error originates. Downgrading libgcc1 also did not help. Bye Gunther
signature.asc
Description: This is a digitally signed message part