summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2023-03-07 13:09:11 +0100
committerLouis Burda <quent.burda@gmail.com>2023-03-07 13:12:58 +0100
commit2b921f50ae0cb12589cdbb01589b662bf38999f1 (patch)
tree8d0b1c04ba99b5f3529ecd2b80a82b073a846903
downloadwaitdbg-2b921f50ae0cb12589cdbb01589b662bf38999f1.tar.gz
waitdbg-2b921f50ae0cb12589cdbb01589b662bf38999f1.zip
Initial version
-rw-r--r--.gitignore1
-rw-r--r--Makefile17
-rw-r--r--waitdbg.c23
3 files changed, 41 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..33a2990
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+waitdbg
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..a9d062b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,17 @@
+PREFIX ?= /usr/local
+BINDIR ?= /bin
+
+all: waitdbg
+
+clean:
+ rm -f waitdbg
+
+waitdbg: waitdbg.c
+
+install:
+ install -m755 waitdbg -t "$(DESTDIR)$(PREFIX)$(BINDIR)"
+
+uninstall:
+ rm "$(DESTDIR)$(PREFIX)$(BINDIR)/waitdbg"
+
+.PHONY: all clean install uninstall
diff --git a/waitdbg.c b/waitdbg.c
new file mode 100644
index 0000000..ec07199
--- /dev/null
+++ b/waitdbg.c
@@ -0,0 +1,23 @@
+#include <unistd.h>
+#include <signal.h>
+#include <err.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main(int argc, const char **argv)
+{
+ int ret;
+
+ if (argc < 2) {
+ printf("Usage: waitdbg CMD [ARG]..\n");
+ return 0;
+ }
+
+ fprintf(stderr, "waitdbg: pid %u (%s)\n", getpid(), argv[1]);
+
+ raise(SIGSTOP);
+
+ ret = execv(argv[1], (void *) &argv[1]);
+ if (!ret) err(1, "execv %s", argv[1]);
+}