X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fdarwin-nat.c;h=c3905d1a30eb4a87edbb02f2c1dd2986387134ff;hb=d9fa87f4f6e732f5feb41f2fa7dc6faddb1fb627;hp=6247b0656c9507de3a8f89e1b74a42b8b4dc30a5;hpb=4de283e4b5f21207fe12f99913d1f28d4f07843c;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c index 6247b0656c..c3905d1a30 100644 --- a/gdb/darwin-nat.c +++ b/gdb/darwin-nat.c @@ -37,6 +37,7 @@ #include "arch-utils.h" #include "bfd.h" #include "bfd/mach-o.h" +#include "gdbarch.h" #include #include @@ -63,10 +64,10 @@ #include "darwin-nat.h" #include "filenames.h" -#include "common/filestuff.h" -#include "common/gdb_unlinker.h" -#include "common/pathstuff.h" -#include "common/scoped_fd.h" +#include "gdbsupport/filestuff.h" +#include "gdbsupport/gdb_unlinker.h" +#include "gdbsupport/pathstuff.h" +#include "gdbsupport/scoped_fd.h" #include "nat/fork-inferior.h" /* Quick overview. @@ -119,7 +120,7 @@ static vm_size_t mach_page_size; /* If Set, catch all mach exceptions (before they are converted to signals by the kernel). */ -static int enable_mach_exceptions; +static bool enable_mach_exceptions; /* Inferior that should report a fake stop event. */ static struct inferior *darwin_inf_fake_stop; @@ -687,7 +688,6 @@ darwin_decode_exception_message (mach_msg_header_t *hdr, /* Not a known inferior. This could happen if the child fork, as the created process will inherit its exception port. FIXME: should the exception port be restored ? */ - kern_return_t kret; mig_reply_error_t reply; inferior_debug @@ -1125,14 +1125,14 @@ darwin_decode_message (mach_msg_header_t *hdr, if (!priv->no_ptrace) { - pid_t res; + pid_t res_pid; int wstatus; - res = wait4 (inf->pid, &wstatus, 0, NULL); - if (res < 0 || res != inf->pid) + res_pid = wait4 (inf->pid, &wstatus, 0, NULL); + if (res_pid < 0 || res_pid != inf->pid) { printf_unfiltered (_("wait4: res=%d: %s\n"), - res, safe_strerror (errno)); + res_pid, safe_strerror (errno)); status->kind = TARGET_WAITKIND_IGNORE; return minus_one_ptid; } @@ -1148,7 +1148,7 @@ darwin_decode_message (mach_msg_header_t *hdr, } inferior_debug (4, _("darwin_wait: pid=%d exit, status=0x%x\n"), - res, wstatus); + res_pid, wstatus); /* Looks necessary on Leopard and harmless... */ wait4 (inf->pid, &wstatus, 0, NULL); @@ -1559,7 +1559,6 @@ darwin_nat_target::kill () signaled thus darwin_decode_message function knows that the kill signal was sent by gdb and will take the appropriate action (cancel signal and reply to the signal message). */ - darwin_inferior *priv = get_darwin_inferior (inf); for (darwin_thread_t *thread : priv->threads) thread->signaled = 1; @@ -1611,7 +1610,7 @@ darwin_attach_pid (struct inferior *inf) darwin_inferior *priv = new darwin_inferior; inf->priv.reset (priv); - TRY + try { kret = task_for_pid (gdb_task, inf->pid, &priv->task); if (kret != KERN_SUCCESS) @@ -1688,14 +1687,13 @@ darwin_attach_pid (struct inferior *inf) darwin_setup_exceptions (inf); } - CATCH (ex, RETURN_MASK_ALL) + catch (const gdb_exception &ex) { exit_inferior (inf); inferior_ptid = null_ptid; - throw_exception (ex); + throw; } - END_CATCH target_ops *darwin_ops = get_native_target (); if (!target_is_pushed (darwin_ops)) @@ -1949,11 +1947,11 @@ The error was: %s"), /* Maybe it was cached by some earlier gdb. */ if (stat (new_name.c_str (), &sb) != 0 || !S_ISREG (sb.st_mode)) { - TRY + try { copy_shell_to_cache (shell, new_name); } - CATCH (ex, RETURN_MASK_ERROR) + catch (const gdb_exception_error &ex) { warning (_("This version of macOS has System Integrity Protection.\n\ Because `startup-with-shell' is enabled, gdb tried to work around SIP by\n\ @@ -1962,10 +1960,9 @@ caching a copy of your shell. However, this failed:\n\ If you correct the problem, gdb will automatically try again the next time\n\ you \"run\". To prevent these attempts, you can use:\n\ set startup-with-shell off"), - ex.message); + ex.what ()); return false; } - END_CATCH printf_filtered (_("Note: this version of macOS has System Integrity Protection.\n\ Because `startup-with-shell' is enabled, gdb has worked around this by\n\ @@ -1988,7 +1985,7 @@ darwin_nat_target::create_inferior (const char *exec_file, const std::string &allargs, char **env, int from_tty) { - gdb::optional> restore_startup_with_shell; + gdb::optional> restore_startup_with_shell; if (startup_with_shell && may_have_sip ()) { @@ -2048,7 +2045,7 @@ darwin_nat_target::attach (const char *args, int from_tty) if (from_tty) { - char *exec_file = get_exec_file (0); + const char *exec_file = get_exec_file (0); if (exec_file) printf_unfiltered (_("Attaching to program: %s, %s\n"), exec_file, @@ -2148,7 +2145,7 @@ darwin_nat_target::thread_alive (ptid_t ptid) copy it to RDADDR in gdb's address space. If WRADDR is not NULL, write gdb's LEN bytes from WRADDR and copy it to ADDR in inferior task's address space. - Return 0 on failure; number of bytes read / writen otherwise. */ + Return 0 on failure; number of bytes read / written otherwise. */ static int darwin_read_write_inferior (task_t task, CORE_ADDR addr,