gdb で catch throw を使えば例外を捕捉できるという話をコメントで教えていただいたので、試してみた。 #include <string> static void foo(void); int main() { foo(); return 0; } static void foo() { std::string s = "abc"; s.replace(-1, 0, "d"); } % g++ -g -Wall -W -O2 exc_bt.cpp -o exc_bt % gdb exc_bt GNU gdb 6.4.90-debian Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you