-
Notifications
You must be signed in to change notification settings - Fork 118
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
fcc4584
commit be6c0a1
Showing
3 changed files
with
144 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
catching signals and then printing a scuffed backtrace and inhibiting a coredump | ||
is useless, just crash normally so a corefile can be inspected in a debugger | ||
instead of being impossible. | ||
-- | ||
--- a/src/core/control/CrashHandlerUnix.h | ||
+++ b/src/core/control/CrashHandlerUnix.h | ||
@@ -71,26 +71,6 @@ | ||
|
||
sigemptyset(&mask); | ||
|
||
-#ifdef SIGSEGV | ||
- signal(SIGSEGV, crashHandler); | ||
- sigaddset(&mask, SIGSEGV); | ||
-#endif | ||
- | ||
-#ifdef SIGFPE | ||
- signal(SIGFPE, crashHandler); | ||
- sigaddset(&mask, SIGFPE); | ||
-#endif | ||
- | ||
-#ifdef SIGILL | ||
- signal(SIGILL, crashHandler); | ||
- sigaddset(&mask, SIGILL); | ||
-#endif | ||
- | ||
-#ifdef SIGABRT | ||
- signal(SIGABRT, crashHandler); | ||
- sigaddset(&mask, SIGABRT); | ||
-#endif | ||
- | ||
sigprocmask(SIG_UNBLOCK, &mask, 0); | ||
|
||
g_log_set_default_handler(GLogFunc(log_handler), getCrashHandlerLogBuffer()); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
diff --git a/src/core/control/CrashHandlerUnix.h b/src/core/control/CrashHandlerUnix.h | ||
index dda77773..5007bddc 100644 | ||
--- a/src/core/control/CrashHandlerUnix.h | ||
+++ b/src/core/control/CrashHandlerUnix.h | ||
@@ -13,7 +13,6 @@ | ||
#include <bitset> | ||
#include <fstream> // std::ofstream | ||
|
||
-#include <execinfo.h> | ||
#include <gtk/gtk.h> | ||
|
||
#include "util/PathUtil.h" | ||
@@ -109,14 +108,6 @@ static void crashHandler(int sig) { | ||
g_warning("[Crash Handler] Crashed with signal %i", sig); | ||
|
||
time_t lt; | ||
- void* array[100]; | ||
- char** messages; | ||
- | ||
- size_t size; | ||
- | ||
- // get void*'s for all entries on the stack | ||
- size = backtrace(array, 100); | ||
- | ||
time_t curtime = time(0); | ||
char stime[128]; | ||
strftime(stime, sizeof(stime), "%Y%m%d-%H%M%S", localtime(&curtime)); | ||
@@ -141,15 +132,6 @@ static void crashHandler(int sig) { | ||
<< std::endl | ||
<< std::endl; | ||
|
||
- messages = backtrace_symbols(array, size); | ||
- | ||
- for (size_t i = 0; i < size; i++) { | ||
- fp << FORMAT_STR("[bt]: ({1}) {2}") % i % messages[i]; | ||
- fp << "\n"; | ||
- } | ||
- | ||
- free(messages); | ||
- | ||
fp << "\n\nTry to get a better stacktrace...\n"; | ||
|
||
Stacktrace::printStracktrace(fp); | ||
diff --git a/src/util/Stacktrace.cpp b/src/util/Stacktrace.cpp | ||
index c33b7f2c..ffb92616 100644 | ||
--- a/src/util/Stacktrace.cpp | ||
+++ b/src/util/Stacktrace.cpp | ||
@@ -14,7 +14,6 @@ | ||
#else | ||
|
||
#include <dlfcn.h> // for dladdr | ||
-#include <execinfo.h> // for backtrace, backtrace_symbols | ||
#include <unistd.h> // for readlink, ssize_t | ||
|
||
#ifdef __APPLE__ | ||
@@ -91,12 +90,10 @@ void Stacktrace::printStracktrace(std::ostream& stream) { | ||
std::array<void*, 32> trace{}; | ||
std::array<char, 2048> buff{}; | ||
|
||
- int trace_size = backtrace(trace.data(), trace.size()); | ||
- char** messages = backtrace_symbols(trace.data(), trace_size); | ||
+ int trace_size = 0; | ||
|
||
// skip first stack frame (points here) | ||
for (unsigned int i = 1; i < trace_size; ++i) { | ||
- stream << "[bt] #" << i - 1 << " " << messages[i] << endl; | ||
|
||
Dl_info info; // NOLINT(cppcoreguidelines-init-variables) | ||
dladdr(trace[i], &info); | ||
@@ -115,7 +112,6 @@ void Stacktrace::printStracktrace(std::ostream& stream) { | ||
pclose(fProc); | ||
} | ||
|
||
- free(messages); | ||
} | ||
#endif | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
pkgname = "xournalpp" | ||
pkgver = "1.2.3" | ||
pkgrel = 0 | ||
build_style = "cmake" | ||
hostmakedepends = [ | ||
"cmake", | ||
"gettext", | ||
"help2man", | ||
"ninja", | ||
"pkgconf", | ||
] | ||
makedepends = [ | ||
"glib-devel", | ||
"gtk+3-devel", | ||
"gtksourceview4-devel", | ||
"librsvg-devel", | ||
"libsndfile-devel", | ||
"libxml2-devel", | ||
"libzip-devel", | ||
"lua5.4-devel", | ||
"poppler-devel", | ||
"portaudio-devel", | ||
] | ||
pkgdesc = "Handwriting notetaking software with PDF annotation support" | ||
maintainer = "daringcuteseal <[email protected]>" | ||
license = "GPL-2.0-or-later" | ||
url = "https://github.com/xournalpp/xournalpp" | ||
source = f"{url}/archive/refs/tags/v{pkgver}.tar.gz" | ||
sha256 = "8817abd1794760c2a3be3a35e56a5588a51e517bc591384fa321994d50e14e7c" | ||
# known overflow in tablet handling thread | ||
tool_flags = { | ||
"CXXFLAGS": ["-DNDEBUG"], | ||
"LDFLAGS": ["-Wl,-z,stack-size=0x200000"], | ||
} |