* exec.c (xfer_memory): Add attrib argument.
[deliverable/binutils-gdb.git] / gdb / stack.c
index 859627671e1ae74f4903353d74b17fbcf777e46c..85f37d88d03ee168c02f12ea16f2fb400691c2fc 100644 (file)
@@ -737,7 +737,7 @@ parse_frame_specification (char *frame_exp)
          addr_string = savestring (frame_exp, p - frame_exp);
 
          {
-           tmp_cleanup = make_cleanup (free, addr_string);
+           tmp_cleanup = make_cleanup (xfree, addr_string);
            args[numargs++] = parse_and_eval_address (addr_string);
            do_cleanups (tmp_cleanup);
          }
@@ -1216,7 +1216,7 @@ backtrace_command (char *arg, int from_tty)
   backtrace_command_1 (argPtr, (argIndicatingFullTrace >= 0), from_tty);
 
   if (argIndicatingFullTrace >= 0 && totArgLen > 0)
-    free (argPtr);
+    xfree (argPtr);
 
   if (old_chain)
     do_cleanups (old_chain);
@@ -1892,6 +1892,12 @@ return_command (char *retval_exp, int from_tty)
   if (retval_exp)
     set_return_value (return_value);
 
+  /* If we are at the end of a call dummy now, pop the dummy frame too.  */
+
+  if (CALL_DUMMY_HAS_COMPLETED (read_pc(), read_sp (),
+                               FRAME_FP (get_current_frame ())))
+    POP_FRAME;
+
   /* If interactive, print the frame that is now current.  */
 
   if (from_tty)
@@ -1953,7 +1959,7 @@ func_command (char *arg, int from_tty)
   while (!found && level == 0);
 
   if (func_bounds)
-    free (func_bounds);
+    xfree (func_bounds);
 
   if (!found)
     printf_filtered ("'%s' not within current stack frame.\n", arg);
This page took 0.024045 seconds and 4 git commands to generate.