diff --git a/commands/Makefile b/commands/Makefile index 57592b402..7510c0c23 100644 --- a/commands/Makefile +++ b/commands/Makefile @@ -7,10 +7,10 @@ SUBDIR= add_route arp ash at backup btrace \ chmod chown ci cleantmp cmp co \ compress cp crc cron crontab \ dd decomp16 DESCRIBE devmand devsize dhcpd \ - dhrystone diff diskctl dumpcore \ + dhrystone diff diskctl \ eject factor fbdctl \ find fix format fortune fsck.mfs \ - gcore gcov-pull getty grep host \ + gcov-pull getty grep host \ hostaddr ifconfig ifdef \ intr ipcrm ipcs irdpd isoread last \ less loadkeys loadramdisk logger look lp \ diff --git a/commands/dumpcore/Makefile b/commands/dumpcore/Makefile deleted file mode 100644 index 3b469fb13..000000000 --- a/commands/dumpcore/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -PROG= dumpcore -CPPFLAGS+= -I${NETBSDSRCDIR} -MAN= - -.include diff --git a/commands/dumpcore/dumpcore.c b/commands/dumpcore/dumpcore.c deleted file mode 100644 index ca6b70bc6..000000000 --- a/commands/dumpcore/dumpcore.c +++ /dev/null @@ -1,71 +0,0 @@ -/* dumpcore - create core file of running process */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include "kernel/proc.h" - -#define CLICK_WORDS (CLICK_SIZE / sizeof(unsigned long)) - -int main(int argc, char *argv[]) -{ - pid_t pid; - int r, status; - - if(argc != 2) { - printf("usage: %s \n", argv[0]); - return 1; - } - - pid = atoi(argv[1]); - - if (ptrace(T_ATTACH, pid, 0, 0) != 0) { - perror("ptrace(T_ATTACH)"); - return 1; - } - - if (waitpid(pid, &status, 0) != pid) { - perror("waitpid"); - return 1; - } - - while (WIFSTOPPED(status) && WSTOPSIG(status) != SIGSTOP) { - /* whatever happens here is fine */ - ptrace(T_RESUME, pid, 0, WSTOPSIG(status)); - - if (waitpid(pid, &status, 0) != pid) { - perror("waitpid"); - return 1; - } - } - - if (!WIFSTOPPED(status)) { - fprintf(stderr, "process died while attaching\n"); - return 1; - } - - if (ptrace(T_DUMPCORE, pid, 0, 0) != 0) { - fprintf(stderr, "warning, dumpcore failed (%s)\n", - strerror(errno)); - } - - if (ptrace(T_DETACH, pid, 0, 0)) { - fprintf(stderr, "warning, detaching failed (%s)\n", - strerror(errno)); - } - - return r; -} diff --git a/commands/gcore/Makefile b/commands/gcore/Makefile deleted file mode 100644 index 4ad31cc0e..000000000 --- a/commands/gcore/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -PROG= gcore -MAN= - -.include diff --git a/commands/gcore/gcore.c b/commands/gcore/gcore.c deleted file mode 100644 index d07d9c0b2..000000000 --- a/commands/gcore/gcore.c +++ /dev/null @@ -1,58 +0,0 @@ -/* gcore - create core file of running process */ - -#include -#include -#include -#include -#include -#include -#include -#include - -int main(int argc, char *argv[]) -{ - pid_t pid; - int status; - - if(argc != 2) { - printf("usage: %s \n", argv[0]); - return 1; - } - - pid = atoi(argv[1]); - - if (ptrace(T_ATTACH, pid, 0, 0) != 0) { - perror("ptrace(T_ATTACH)"); - return 1; - } - - if (waitpid(pid, &status, 0) != pid) { - perror("waitpid"); - return 1; - } - - while (WIFSTOPPED(status) && WSTOPSIG(status) != SIGSTOP) { - /* whatever happens here is fine */ - ptrace(T_RESUME, pid, 0, WSTOPSIG(status)); - - if (waitpid(pid, &status, 0) != pid) { - perror("waitpid"); - return 1; - } - } - - if (!WIFSTOPPED(status)) { - fprintf(stderr, "process died while attaching\n"); - return 1; - } - - if (ptrace(T_DUMPCORE, pid, 0, 0)) { - fprintf(stderr, "warning, dumpcore failed (%s)\n", strerror(errno)); - } - - if (ptrace(T_DETACH, pid, 0, 0)) { - fprintf(stderr, "warning, detaching failed (%s)\n", strerror(errno)); - } - - return 0; -} diff --git a/distrib/sets/lists/minix/mi b/distrib/sets/lists/minix/mi index eb77670d4..b123b914f 100644 --- a/distrib/sets/lists/minix/mi +++ b/distrib/sets/lists/minix/mi @@ -299,7 +299,7 @@ ./usr/bin/dosread minix-sys ./usr/bin/doswrite minix-sys ./usr/bin/du minix-sys -./usr/bin/dumpcore minix-sys +./usr/bin/dumpcore minix-sys obsolete ./usr/bin/egrep minix-sys ./usr/bin/eject minix-sys ./usr/bin/elfedit minix-sys binutils @@ -331,7 +331,7 @@ ./usr/bin/ftp minix-sys ./usr/bin/g++ minix-sys gcccmds ./usr/bin/gcc minix-sys gcccmds -./usr/bin/gcore minix-sys +./usr/bin/gcore minix-sys obsolete ./usr/bin/gcov minix-sys gcccmds ./usr/bin/gcov-pull minix-sys ./usr/bin/gcpp minix-sys gcccmds @@ -1901,7 +1901,7 @@ ./usr/man/man1/dosread.1 minix-sys ./usr/man/man1/doswrite.1 minix-sys ./usr/man/man1/du.1 minix-sys -./usr/man/man1/dumpcore.1 minix-sys +./usr/man/man1/dumpcore.1 minix-sys obsolete ./usr/man/man1/echo.1 minix-sys ./usr/man/man1/ed.1 minix-sys ./usr/man/man1/egrep.1 minix-sys diff --git a/include/minix/com.h b/include/minix/com.h index 35b7e4322..b35e6228c 100644 --- a/include/minix/com.h +++ b/include/minix/com.h @@ -817,7 +817,6 @@ /* Additional parameters for PM_DUMPCORE */ # define PM_TERM_SIG m7_i2 /* process's termination signal */ -# define PM_TRACED_PROC m7_i3 /* required for T_DUMPCORE */ /* Parameters for the EXEC_NEWMEM call */ #define EXC_NM_PROC m1_i1 /* process that needs new map */ diff --git a/man/man1/Makefile b/man/man1/Makefile index 69d2d8a35..dd79a8e32 100644 --- a/man/man1/Makefile +++ b/man/man1/Makefile @@ -3,7 +3,7 @@ MAN= ash.1 at.1 \ chmod.1 cmp.1 compress.1 \ cp.1 crc.1 crontab.1 dd.1 \ dhrystone.1 dosdir.1 dosread.1 doswrite.1 \ - dumpcore.1 eject.1 \ + eject.1 \ factor.1 \ flexdoc.1 format.1 fortune.1 \ fsck.mfs.1 host.1 hostaddr.1 ifdef.1 \ diff --git a/man/man1/dumpcore.1 b/man/man1/dumpcore.1 deleted file mode 100644 index 2f3926a93..000000000 --- a/man/man1/dumpcore.1 +++ /dev/null @@ -1,29 +0,0 @@ -.TH DUMPCORE 1 -.SH NAME -dumpcore \- generate core file of running process -.SH SYNOPSIS -dumpcore \fIpid\fR -.br -.de FL -.TP -\\fB\\$1\\fR -\\$2 -.. -.de EX -.TP 20 -\\fB\\$1\\fR -# \\$2 -.. -.SH DESCRIPTION -The \fBdumpcore\fR utility generates a core file for a running process, based -on that process's process ID (\fIpid\fP). The resulting core file will be -stored under the name "core" in the current working directory. Any previous -file with that name will be overwritten. -.PP -The resulting core file can be used with for example -.BR mdb (1). -.SH BUGS -The process of generating the core file is currently very rudimentary, and -the generated core file does not contain for example memory mapped areas. -.SH "SEE ALSO" -.BR mdb (1). diff --git a/servers/pm/forkexit.c b/servers/pm/forkexit.c index 6e01f41ee..8cc065af5 100644 --- a/servers/pm/forkexit.c +++ b/servers/pm/forkexit.c @@ -320,11 +320,10 @@ int dump_core; /* flag indicating whether to dump core */ /* Tell VFS about the exiting process. */ m.m_type = dump_core ? PM_DUMPCORE : PM_EXIT; m.PM_PROC = rmp->mp_endpoint; - m.PM_TRACED_PROC = rmp->mp_endpoint; if (dump_core) { - m.PM_TERM_SIG = rmp->mp_sigstatus; - m.PM_PATH = rmp->mp_name; + m.PM_TERM_SIG = rmp->mp_sigstatus; + m.PM_PATH = rmp->mp_name; } tell_vfs(rmp, &m); diff --git a/servers/pm/main.c b/servers/pm/main.c index 98103af26..60d7b9486 100644 --- a/servers/pm/main.c +++ b/servers/pm/main.c @@ -447,15 +447,7 @@ static void handle_vfs_reply() if (m_in.PM_STATUS == OK) rmp->mp_sigstatus |= DUMPED; - if (m_in.PM_PROC == m_in.PM_TRACED_PROC) - /* The reply is to a core dump request - * for a killed process */ - exit_restart(rmp, TRUE /*dump_core*/); - else - /* The reply is to a core dump request - * for a traced process (T_DUMPCORE) */ - /* Wake up the original caller */ - setreply(rmp-mproc, rmp->mp_procgrp); + exit_restart(rmp, TRUE /*dump_core*/); break; diff --git a/servers/pm/trace.c b/servers/pm/trace.c index 522a401f0..17d4e1d9b 100644 --- a/servers/pm/trace.c +++ b/servers/pm/trace.c @@ -91,27 +91,6 @@ int do_trace() mp->mp_reply.reply_trace = 0; return(OK); - case T_DUMPCORE: - if ((child = find_proc(m_in.pid)) == NULL) return(ESRCH); - - /* Allow dumpcore only if traced! */ - if (child->mp_tracer != who_p) return(EPERM); - - /* Tell VFS to dump the core. */ - m.m_type = PM_DUMPCORE; - m.PM_PROC = mp->mp_endpoint; - m.PM_TRACED_PROC = child->mp_endpoint; - /* Note that m.PM_PROC != m.PM_TRACED_PROC - * (we use this to differentiate between a VFS core dump reply for a - * an exiting process and the one for a traced process) */ - - m.PM_TERM_SIG = child->mp_sigstatus; - m.PM_PATH = child->mp_name; - - tell_vfs(mp, &m); - - return(SUSPEND); /* Suspend the process until we receive reply from VFS */ - case T_STOP: /* stop the process */ /* This call is not exposed to user programs, because its effect can be * achieved better by sending the traced process a signal with kill(2). diff --git a/servers/vfs/main.c b/servers/vfs/main.c index 221ebaca6..a6f3af03e 100644 --- a/servers/vfs/main.c +++ b/servers/vfs/main.c @@ -811,19 +811,12 @@ static void service_pm_postponed(void) case PM_DUMPCORE: { - endpoint_t proc_e, traced_proc_e; + endpoint_t proc_e; int term_signal; vir_bytes core_path; proc_e = job_m_in.PM_PROC; - traced_proc_e = job_m_in.PM_TRACED_PROC; - if(job_m_in.PM_PROC != job_m_in.PM_TRACED_PROC) { - /* dumpcore request */ - term_signal = 0; - } else { - /* dumpcore on exit */ - term_signal = job_m_in.PM_TERM_SIG; - } + term_signal = job_m_in.PM_TERM_SIG; core_path = (vir_bytes) job_m_in.PM_PATH; r = pm_dumpcore(proc_e, term_signal, core_path); @@ -831,7 +824,6 @@ static void service_pm_postponed(void) /* Reply status to PM */ m_out.m_type = PM_CORE_REPLY; m_out.PM_PROC = proc_e; - m_out.PM_TRACED_PROC = traced_proc_e; m_out.PM_STATUS = r; } break; diff --git a/sys/sys/ptrace.h b/sys/sys/ptrace.h index 59c1a442a..b829771a4 100644 --- a/sys/sys/ptrace.h +++ b/sys/sys/ptrace.h @@ -23,7 +23,6 @@ #define T_SETOPT 13 /* set trace options */ #define T_GETRANGE 14 /* get range of values */ #define T_SETRANGE 15 /* set range of values */ -#define T_DUMPCORE 16 /* dumps the core for the process with the given pid */ #define T_READB_INS 100 /* Read a byte from the text segment of an * untraced process (only for root)