close_procinfo_files (pi);
/* Step three: free the memory. */
- free (pi);
+ xfree (pi);
}
static void
It doesn't get called that often... and if I open it
every time, I don't need to lseek it. */
int
-proc_iterate_over_mappings (func)
- int (*func) (int, CORE_ADDR);
+proc_iterate_over_mappings (int (*func) (int, CORE_ADDR))
{
struct prmap *map;
procinfo *pi;
malloc (sizeof (gdb_prstatus_t) * (nlwp + 1))) == 0)
perror_with_name ("procfs: malloc failed in update_threads");
- old_chain = make_cleanup (free, prstatus);
+ old_chain = make_cleanup (xfree, prstatus);
if (ioctl (pi->ctl_fd, PIOCLSTATUS, prstatus) < 0)
proc_error (pi, "update_threads (PIOCLSTATUS)", __LINE__);
*/
int
-proc_iterate_over_threads (pi, func, ptr)
- procinfo *pi;
- int (*func) (procinfo *, procinfo *, void *);
- void *ptr;
+proc_iterate_over_threads (procinfo *pi,
+ int (*func) (procinfo *, procinfo *, void *),
+ void *ptr)
{
procinfo *thread, *next;
int retval = 0;
return retval;
}
+/* Transfer LEN bytes between GDB address MYADDR and target address
+ MEMADDR. If DOWRITE is non-zero, transfer them to the target,
+ otherwise transfer them from the target. TARGET is unused.
+
+ The return value is 0 if an error occurred or no bytes were
+ transferred. Otherwise, it will be a positive value which
+ indicates the number of bytes transferred between gdb and the
+ target. (Note that the interface also makes provisions for
+ negative values, but this capability isn't implemented here.) */
+
static int
-procfs_xfer_memory (memaddr, myaddr, len, dowrite, target)
- CORE_ADDR memaddr;
- char *myaddr;
- int len;
- int dowrite;
- struct target_ops *target; /* ignored */
+procfs_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int dowrite,
+ struct target_ops *target)
{
procinfo *pi;
int nbytes = 0;
{
procinfo *pi;
- pi = find_procinfo_or_die (pid == -1 ?
- PIDGET (inferior_pid) : PIDGET (pid), 0);
+ pi = find_procinfo (pid == -1 ?
+ PIDGET (inferior_pid) : PIDGET (pid), 0);
+
+ if (!pi) /* If no process, then not stopped by watchpoint! */
+ return 0;
+
if (proc_flags (pi) & (PR_STOPPED | PR_ISTOP))
{
if (proc_why (pi) == PR_FAULTED)