aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2016-07-17 11:29:29 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2016-07-17 11:29:29 -0400
commitc8917395c0cc5ff9fbec3a504c1855d9012d17ed (patch)
treea6effa15d79a9beaafed06d3541d425eafe0a180 /common
parentImplement configurable wrapping on bar ws scroll (diff)
downloadsway-c8917395c0cc5ff9fbec3a504c1855d9012d17ed.tar.gz
sway-c8917395c0cc5ff9fbec3a504c1855d9012d17ed.tar.zst
sway-c8917395c0cc5ff9fbec3a504c1855d9012d17ed.zip
Remove SIGSERV and SIGABORT handler
From now on let's just let the core dumps happen and ask users to provide them.
Diffstat (limited to 'common')
-rw-r--r--common/log.c47
1 files changed, 1 insertions, 46 deletions
diff --git a/common/log.c b/common/log.c
index 56c3834a..6f9fb07e 100644
--- a/common/log.c
+++ b/common/log.c
@@ -30,8 +30,6 @@ void init_log(log_importance_t verbosity) {
30 loglevel_default = verbosity; 30 loglevel_default = verbosity;
31 } 31 }
32 v = verbosity; 32 v = verbosity;
33 signal(SIGSEGV, error_handler);
34 signal(SIGABRT, error_handler);
35} 33}
36 34
37void set_log_level(log_importance_t verbosity) { 35void set_log_level(log_importance_t verbosity) {
@@ -39,7 +37,7 @@ void set_log_level(log_importance_t verbosity) {
39} 37}
40 38
41log_importance_t get_log_level(void) { 39log_importance_t get_log_level(void) {
42 return v; 40 return v;
43} 41}
44 42
45void reset_log_level(void) { 43void reset_log_level(void) {
@@ -136,46 +134,3 @@ bool _sway_assert(bool condition, const char* format, ...) {
136 134
137 return false; 135 return false;
138} 136}
139
140void error_handler(int sig) {
141#if SWAY_Backtrace_FOUND
142 int i;
143 int max_lines = 20;
144 void *array[max_lines];
145 char **bt;
146 size_t bt_len;
147 char maps_file[256];
148 char maps_buffer[1024];
149
150 sway_log(L_ERROR, "Error: Signal %d. Printing backtrace", sig);
151 bt_len = backtrace(array, max_lines);
152 bt = backtrace_symbols(array, bt_len);
153 if (!bt) {
154 sway_log(L_ERROR, "Could not allocate sufficient memory for backtrace_symbols(), falling back to stderr");
155 backtrace_symbols_fd(array, bt_len, STDERR_FILENO);
156 exit(1);
157 }
158
159 for (i = 0; (size_t)i < bt_len; i++) {
160 sway_log(L_ERROR, "Backtrace: %s", bt[i]);
161 }
162
163 sway_log(L_ERROR, "Maps:");
164 pid_t pid = getpid();
165 if (snprintf(maps_file, 255, "/proc/%zd/maps", (size_t)pid) < 255) {
166 FILE *maps = fopen(maps_file, "r");
167 while (!feof(maps)) {
168 char *m = read_line_buffer(maps, maps_buffer, 1024);
169 if (!m) {
170 sway_log(L_ERROR, "Unable to allocate memory to show maps");
171 break;
172 }
173 sway_log(L_ERROR, "%s", m);
174 }
175 fclose(maps);
176 }
177#else
178 sway_log(L_ERROR, "Error: Signal %d.", sig);
179#endif
180 exit(1);
181}