mirror of
https://codeberg.org/dwl/dwl-patches.git
synced 2025-09-07 11:44:51 +00:00
coredump: rebase against v0.7
This commit is contained in:
parent
9f1dab082c
commit
3b3a071bdd
@ -1,9 +1,11 @@
|
||||
### Description
|
||||
Generate a coredump if dwl exited abnormally (to be more usefull you need to compile dwl and wlroots with debug symbols)
|
||||
|
||||
### Download
|
||||
- [git branch](https://codeberg.org/sevz/dwl/src/branch/coredump)
|
||||
- [2024-06-07](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/coredump/coredump.patch)
|
||||
|
||||
### Authors
|
||||
- [sevz](https://codeberg.org/sevz)
|
||||
### Description
|
||||
Generate a coredump if dwl exited abnormally (to be more usefull you need to
|
||||
compile dwl and wlroots with debug symbols)
|
||||
|
||||
### Download
|
||||
- [git branch](https://codeberg.org/sevz/dwl/src/branch/coredump)
|
||||
- [2024-06-07](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/coredump/coredump.patch)
|
||||
- [coredump-0.7.patch](/dwl/dwl-patches/raw/branch/main/patches/coredump/coredump-0.7.patch)
|
||||
|
||||
### Authors
|
||||
- [sevz](https://codeberg.org/sevz)
|
||||
|
65
patches/coredump/coredump-0.7.patch
Normal file
65
patches/coredump/coredump-0.7.patch
Normal file
@ -0,0 +1,65 @@
|
||||
From 2abde87f9159ec3318a0489ac0ed512f166ef8c8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?=
|
||||
<leohdz172@proton.me>
|
||||
Date: Wed, 5 Oct 2022 23:07:13 -0500
|
||||
Subject: [PATCH] increase RLIMIT_CORE (generate a coredump)
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Leonardo Hernández Hernández <leohdz172@proton.me>
|
||||
---
|
||||
dwl.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/dwl.c b/dwl.c
|
||||
index a2711f67..cfbb0bb8 100644
|
||||
--- a/dwl.c
|
||||
+++ b/dwl.c
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
+#include <sys/resource.h>
|
||||
#include <sys/wait.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
@@ -358,6 +359,8 @@ static void zoom(const Arg *arg);
|
||||
|
||||
/* variables */
|
||||
static const char broken[] = "broken";
|
||||
+static struct rlimit oldrlimit;
|
||||
+static struct rlimit newrlimit;
|
||||
static pid_t child_pid = -1;
|
||||
static int locked;
|
||||
static void *exclusive_focus;
|
||||
@@ -2232,6 +2235,7 @@ run(char *startup_cmd)
|
||||
if ((child_pid = fork()) < 0)
|
||||
die("startup: fork:");
|
||||
if (child_pid == 0) {
|
||||
+ setrlimit(RLIMIT_CORE, &oldrlimit);
|
||||
setsid();
|
||||
dup2(piperw[0], STDIN_FILENO);
|
||||
close(piperw[0]);
|
||||
@@ -2649,6 +2653,7 @@ void
|
||||
spawn(const Arg *arg)
|
||||
{
|
||||
if (fork() == 0) {
|
||||
+ setrlimit(RLIMIT_CORE, &oldrlimit);
|
||||
dup2(STDERR_FILENO, STDOUT_FILENO);
|
||||
setsid();
|
||||
execvp(((char **)arg->v)[0], (char **)arg->v);
|
||||
@@ -3189,6 +3194,10 @@ main(int argc, char *argv[])
|
||||
char *startup_cmd = NULL;
|
||||
int c;
|
||||
|
||||
+ getrlimit(RLIMIT_CORE, &oldrlimit);
|
||||
+ newrlimit.rlim_cur = newrlimit.rlim_max = oldrlimit.rlim_max;
|
||||
+ setrlimit(RLIMIT_CORE, &newrlimit);
|
||||
+
|
||||
while ((c = getopt(argc, argv, "s:hdv")) != -1) {
|
||||
if (c == 's')
|
||||
startup_cmd = optarg;
|
||||
--
|
||||
2.46.0
|
||||
|
Loading…
x
Reference in New Issue
Block a user