summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/SelectorThread.cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2009-05-07 09:44:25 -0230
committerDwayne Boone <dwayne@zeroc.com>2009-05-07 09:44:25 -0230
commit2d0d9ef78501a0d3c9b6ab77bd31afa845db7cd3 (patch)
treeda8bb8159c737559c48989869a23e280e7cb38bd /cpp/src/Ice/SelectorThread.cpp
parentBug 3624 - desupport HP (diff)
downloadice-2d0d9ef78501a0d3c9b6ab77bd31afa845db7cd3.tar.bz2
ice-2d0d9ef78501a0d3c9b6ab77bd31afa845db7cd3.tar.xz
ice-2d0d9ef78501a0d3c9b6ab77bd31afa845db7cd3.zip
Bug 2664 - show stack traces with C++
Diffstat (limited to 'cpp/src/Ice/SelectorThread.cpp')
-rw-r--r--cpp/src/Ice/SelectorThread.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/cpp/src/Ice/SelectorThread.cpp b/cpp/src/Ice/SelectorThread.cpp
index 8b1c815f7af..c5f53aa6620 100644
--- a/cpp/src/Ice/SelectorThread.cpp
+++ b/cpp/src/Ice/SelectorThread.cpp
@@ -36,6 +36,9 @@ IceInternal::SelectorThread::SelectorThread(const InstancePtr& instance) :
{
Error out(_instance->initializationData().logger);
out << "cannot create thread for selector thread:\n" << ex;
+#ifdef __GNUC__
+ out << "\n" << ex.ice_stackTrace();
+#endif
}
_thread = 0;
__setNoDelete(false);
@@ -156,6 +159,9 @@ IceInternal::SelectorThread::run()
{
Error out(_instance->initializationData().logger);
out << "exception in selector thread:\n" << ex;
+#ifdef __GNUC__
+ out << "\n" << ex.ice_stackTrace();
+#endif
continue;
}
@@ -230,6 +236,15 @@ IceInternal::SelectorThread::run()
status = cb->socketReady();
}
}
+ catch(const Ice::Exception& ex)
+ {
+ Error out(_instance->initializationData().logger);
+ out << "exception in selector thread while calling socketReady():\n" << ex.what();
+#ifdef __GNUC__
+ out << "\n" << ex.ice_stackTrace();
+#endif
+ status = Finished;
+ }
catch(const std::exception& ex)
{
Error out(_instance->initializationData().logger);