X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fnto-procfs.c;h=7fb7095745fda2d15a32ce5e424018a357fa6fa7;hb=2f91880f3afb3cc521111dfcc99b214c77aa97a1;hp=992de2967c65c25fd5e7c7d8b447e0e70ee11404;hpb=618f726fcb851883a0094aa7fa17003889b7189f;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/nto-procfs.c b/gdb/nto-procfs.c index 992de2967c..7fb7095745 100644 --- a/gdb/nto-procfs.c +++ b/gdb/nto-procfs.c @@ -1,7 +1,7 @@ /* Machine independent support for QNX Neutrino /proc (process file system) for GDB. Written by Colin Burgess at QNX Software Systems Limited. - Copyright (C) 2003-2016 Free Software Foundation, Inc. + Copyright (C) 2003-2017 Free Software Foundation, Inc. Contributed by QNX Software Systems Ltd. @@ -516,7 +516,7 @@ procfs_meminfo (char *args, int from_tty) return; } - num = min (num, num_mapinfos); + num = std::min (num, num_mapinfos); /* Run through the list of mapinfos, and store the data and text info so we can print it at the bottom of the loop. */ @@ -723,16 +723,12 @@ do_attach (ptid_t ptid) static void interrupt_query (void) { - target_terminal_ours (); - if (query (_("Interrupted while waiting for the program.\n\ Give up (and stop debugging it)? "))) { - target_mourn_inferior (); + target_mourn_inferior (inferior_ptid); quit (); } - - target_terminal_inferior (); } /* The user typed ^C twice. */ @@ -872,7 +868,7 @@ procfs_fetch_registers (struct target_ops *ops, reg; int regsize; - procfs_set_thread (inferior_ptid); + procfs_set_thread (regcache_get_ptid (regcache)); if (devctl (ctl_fd, DCMD_PROC_GETGREG, ®, sizeof (reg), ®size) == EOK) nto_supply_gregset (regcache, (char *) ®.greg); if (devctl (ctl_fd, DCMD_PROC_GETFPREG, ®, sizeof (reg), ®size) @@ -943,7 +939,7 @@ procfs_xfer_partial (struct target_ops *ops, enum target_object object, tempread = nto_read_auxv_from_initial_stack (initial_stack, tempbuf, sizeof_tempbuf, sizeof (auxv_t)); - tempread = min (tempread, len) - offset; + tempread = std::min (tempread, len) - offset; memcpy (readbuf, tempbuf + offset, tempread); *xfered_len = tempread; return tempread ? TARGET_XFER_OK : TARGET_XFER_EOF; @@ -966,15 +962,8 @@ procfs_detach (struct target_ops *ops, const char *args, int from_tty) int siggnal = 0; int pid; - if (from_tty) - { - char *exec_file = get_exec_file (0); - if (exec_file == 0) - exec_file = ""; - printf_unfiltered ("Detaching from program: %s %s\n", - exec_file, target_pid_to_str (inferior_ptid)); - gdb_flush (gdb_stdout); - } + target_announce_detach (); + if (args) siggnal = atoi (args); @@ -1015,7 +1004,8 @@ procfs_insert_breakpoint (struct target_ops *ops, struct gdbarch *gdbarch, static int procfs_remove_breakpoint (struct target_ops *ops, struct gdbarch *gdbarch, - struct bp_target_info *bp_tgt) + struct bp_target_info *bp_tgt, + enum remove_bp_reason reason) { return procfs_breakpoint (bp_tgt->placed_address, _DEBUG_BREAK_EXEC, -1); } @@ -1173,8 +1163,9 @@ breakup_args (char *scratch, char **argv) } static void -procfs_create_inferior (struct target_ops *ops, char *exec_file, - char *allargs, char **env, int from_tty) +procfs_create_inferior (struct target_ops *ops, const char *exec_file, + const std::string &allargs, + char **env, int from_tty) { struct inheritance inherit; pid_t pid; @@ -1186,7 +1177,7 @@ procfs_create_inferior (struct target_ops *ops, char *exec_file, const char *inferior_io_terminal = get_inferior_io_terminal (); struct inferior *inf; - argv = xmalloc (((strlen (allargs) + 1) / (unsigned) 2 + 2) * + argv = xmalloc ((allargs.size () / (unsigned) 2 + 2) * sizeof (*argv)); argv[0] = get_exec_file (1); if (!argv[0]) @@ -1197,7 +1188,7 @@ procfs_create_inferior (struct target_ops *ops, char *exec_file, return; } - args = xstrdup (allargs); + args = xstrdup (allargs.c_str ()); breakup_args (args, (exec_file != NULL) ? &argv[1] : &argv[0]); argv = nto_parse_redirection (argv, &in, &out, &err); @@ -1310,7 +1301,7 @@ procfs_interrupt (struct target_ops *self, ptid_t ptid) static void procfs_kill_inferior (struct target_ops *ops) { - target_mourn_inferior (); + target_mourn_inferior (inferior_ptid); } /* Fill buf with regset and return devctl cmd to do the setting. Return @@ -1360,10 +1351,11 @@ procfs_store_registers (struct target_ops *ops, unsigned off; int len, regset, regsize, dev_set, err; char *data; + ptid_t ptid = regcache_get_ptid (regcache); - if (ptid_equal (inferior_ptid, null_ptid)) + if (ptid_equal (ptid, null_ptid)) return; - procfs_set_thread (inferior_ptid); + procfs_set_thread (ptid); if (regno == -1) {