summaryrefslogtreecommitdiff
path: root/libs/pbd/stacktrace.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/pbd/stacktrace.cc')
-rw-r--r--libs/pbd/stacktrace.cc20
1 files changed, 13 insertions, 7 deletions
diff --git a/libs/pbd/stacktrace.cc b/libs/pbd/stacktrace.cc
index dd5e1fd3b6..ca614509a5 100644
--- a/libs/pbd/stacktrace.cc
+++ b/libs/pbd/stacktrace.cc
@@ -77,15 +77,21 @@ PBD::stacktrace (std::ostream& out, int levels)
size_t i;
size = backtrace (array, 200);
- strings = backtrace_symbols (array, size);
-
- if (strings) {
- for (i = 0; i < size && (levels == 0 || i < size_t(levels)); i++) {
- out << " " << demangle (strings[i]) << std::endl;
+ if (size) {
+ strings = backtrace_symbols (array, size);
+
+ if (strings) {
+
+ for (i = 0; i < size && (levels == 0 || i < size_t(levels)); i++) {
+ out << " " << demangle (strings[i]) << std::endl;
+ std::cerr << " " << demangle (strings[i]) << std::endl;
+ }
+
+ free (strings);
}
-
- free (strings);
+ } else {
+ out << "no stacktrace available!" << std::endl;
}
}