From: Kamil Rytarowski Date: Thu, 13 Aug 2020 17:29:13 +0000 (+0200) Subject: gdb: Implement native dumpcore function for NetBSD X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a6e6223e9a2f6ca77e064fbe8b326ac7fa205872;p=binutils-gdb.git gdb: Implement native dumpcore function for NetBSD Define supports_dumpcore and dumpcore for NetBSD, that wraps the ptrace(2) call with the PT_DUMPCORE operation. gdb/ChangeLog: * nbsd-nat.h (nbsd_nat_target::supports_dumpcore) (nbsd_nat_target::dumpcore): New declarations. * nbsd-nat.c (nbsd_nat_target::supports_dumpcore) (nbsd_nat_target::dumpcore): New functions. --- diff --git a/gdb/nbsd-nat.c b/gdb/nbsd-nat.c index 5b59f2130d7..52c4d185695 100644 --- a/gdb/nbsd-nat.c +++ b/gdb/nbsd-nat.c @@ -890,3 +890,23 @@ nbsd_nat_target::xfer_partial (enum target_object object, len, xfered_len); } } + +/* Implement the "supports_dumpcore" target_ops method. */ + +bool +nbsd_nat_target::supports_dumpcore () +{ + return true; +} + +/* Implement the "dumpcore" target_ops method. */ + +void +nbsd_nat_target::dumpcore (const char *filename) +{ + pid_t pid = inferior_ptid.pid (); + + if (ptrace (PT_DUMPCORE, pid, const_cast(filename), + strlen (filename)) == -1) + perror_with_name (("ptrace")); +} diff --git a/gdb/nbsd-nat.h b/gdb/nbsd-nat.h index 665a71a0f78..b09d5b1e3bb 100644 --- a/gdb/nbsd-nat.h +++ b/gdb/nbsd-nat.h @@ -55,6 +55,8 @@ struct nbsd_nat_target : public inf_ptrace_target const gdb_byte *writebuf, ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) override; + bool supports_dumpcore () override; + void dumpcore (const char *filename) override; }; #endif /* nbsd-nat.h */