Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Donald Haase
Cockatrice
Commits
374313a2
Commit
374313a2
authored
Apr 19, 2015
by
Zach
Browse files
Merge pull request #988 from ctrlaltca/servatrice_crash
Simple stack trace for signal handler (unix only)
parents
5f13f89d
70296dde
Changes
1
Hide whitespace changes
Inline
Side-by-side
servatrice/src/main.cpp
View file @
374313a2
...
...
@@ -33,8 +33,12 @@
#include
<google/protobuf/stubs/common.h>
#ifdef Q_OS_UNIX
#include
<signal.h>
#include
<execinfo.h>
#include
<unistd.h>
#endif
#define SIGSEGV_TRACE_LINES 40
RNG_Abstract
*
rng
;
ServerLogger
*
logger
;
QThread
*
loggerThread
;
...
...
@@ -129,6 +133,16 @@ void myMessageOutput2(QtMsgType /*type*/, const QMessageLogContext &, const QStr
#ifdef Q_OS_UNIX
void
sigSegvHandler
(
int
sig
)
{
void
*
array
[
SIGSEGV_TRACE_LINES
];
size_t
size
;
// get void*'s for all entries on the stack
size
=
backtrace
(
array
,
SIGSEGV_TRACE_LINES
);
// print out all the frames to stderr
fprintf
(
stderr
,
"Error: signal %d:
\n
"
,
sig
);
backtrace_symbols_fd
(
array
,
size
,
STDERR_FILENO
);
if
(
sig
==
SIGSEGV
)
logger
->
logMessage
(
"CRASH: SIGSEGV"
);
else
if
(
sig
==
SIGABRT
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment