summaryrefslogtreecommitdiff
path: root/libs/pbd/stacktrace.cc
diff options
context:
space:
mode:
authorJohn Emmas <johne53@tiscali.co.uk>2015-07-18 15:22:43 +0100
committerJohn Emmas <johne53@tiscali.co.uk>2015-07-18 15:22:43 +0100
commite29fd9a2fde099ea14d8c8517c3967eb62e2ac0e (patch)
treeb0ab643bb62b2c59697b8ec16d9ef0fae29ab4a6 /libs/pbd/stacktrace.cc
parent8587fef16afd4b14e871ed22ea23492f14b8af85 (diff)
Minor changes to ensure that MSVC knows about 'CaptureStackBackTrace()'
Diffstat (limited to 'libs/pbd/stacktrace.cc')
-rw-r--r--libs/pbd/stacktrace.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/pbd/stacktrace.cc b/libs/pbd/stacktrace.cc
index d4199b9adc..181b7d18e7 100644
--- a/libs/pbd/stacktrace.cc
+++ b/libs/pbd/stacktrace.cc
@@ -20,6 +20,7 @@
#include "libpbd-config.h"
#include "pbd/stacktrace.h"
+#include "pbd/debug.h"
#include "pbd/compose.h"
#include "pbd/pthread_utils.h"
@@ -113,6 +114,19 @@ PBD::stacktrace (std::ostream& out, int levels)
#elif defined (PLATFORM_WINDOWS)
+#if defined DEBUG && !defined CaptureStackBackTrace
+#define CaptureStackBackTrace RtlCaptureStackBackTrace
+
+extern "C" {
+ __declspec(dllimport) USHORT WINAPI CaptureStackBackTrace (
+ ULONG FramesToSkip,
+ ULONG FramesToCapture,
+ PVOID *BackTrace,
+ PULONG BackTraceHash
+ );
+}
+#endif
+
std::string
PBD::demangle (std::string const & l) /* JE - !!!! 'PBD' namespace might possibly get removed (except it's still used in 'libs/canvas/item.cc') */
{
@@ -131,7 +145,7 @@ PBD::stacktrace( std::ostream& out, int)
HANDLE process;
process = GetCurrentProcess();
- out << "+++++Backtrace process: " << pthread_self() << std::endl;
+ out << "+++++Backtrace process: " << DEBUG_THREAD_SELF << std::endl;
SymInitialize( process, NULL, TRUE );