diff options
author | Drew DeVault <sir@cmpwn.com> | 2016-07-17 11:29:29 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2016-07-17 11:29:29 -0400 |
commit | c8917395c0cc5ff9fbec3a504c1855d9012d17ed (patch) | |
tree | a6effa15d79a9beaafed06d3541d425eafe0a180 /common/log.c | |
parent | Implement configurable wrapping on bar ws scroll (diff) | |
download | sway-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/log.c')
-rw-r--r-- | common/log.c | 47 |
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 | ||
37 | void set_log_level(log_importance_t verbosity) { | 35 | void set_log_level(log_importance_t verbosity) { |
@@ -39,7 +37,7 @@ void set_log_level(log_importance_t verbosity) { | |||
39 | } | 37 | } |
40 | 38 | ||
41 | log_importance_t get_log_level(void) { | 39 | log_importance_t get_log_level(void) { |
42 | return v; | 40 | return v; |
43 | } | 41 | } |
44 | 42 | ||
45 | void reset_log_level(void) { | 43 | void 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 | |||
140 | void 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 | } | ||