2011-09-06 Luis Machado <lgustavo@codesourcery.com>
authorLuis Machado <luisgpm@br.ibm.com>
Wed, 7 Sep 2011 02:33:58 +0000 (02:33 +0000)
committerLuis Machado <luisgpm@br.ibm.com>
Wed, 7 Sep 2011 02:33:58 +0000 (02:33 +0000)
* frame.c (has_stack_frames): Check for currently selected
traceframe.

gdb/ChangeLog
gdb/frame.c

index af56e35..2954329 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-06  Luis Machado  <lgustavo@codesourcery.com>
+
+       * frame.c (has_stack_frames): Check for currently selected
+       traceframe.
+
 2011-09-06  Pedro Alves  <pedro@codesourcery.com>
 
        * event-top.h (MAXPROMPTS, struct prompts): Delete.
index 37f106a..fc581fb 100644 (file)
@@ -1328,17 +1328,21 @@ has_stack_frames (void)
   if (!target_has_registers || !target_has_stack || !target_has_memory)
     return 0;
 
-  /* No current inferior, no frame.  */
-  if (ptid_equal (inferior_ptid, null_ptid))
-    return 0;
+  /* Traceframes are effectively a substitute for the live inferior.  */
+  if (get_traceframe_number () < 0)
+    {
+      /* No current inferior, no frame.  */
+      if (ptid_equal (inferior_ptid, null_ptid))
+       return 0;
 
-  /* Don't try to read from a dead thread.  */
-  if (is_exited (inferior_ptid))
-    return 0;
+      /* Don't try to read from a dead thread.  */
+      if (is_exited (inferior_ptid))
+       return 0;
 
-  /* ... or from a spinning thread.  */
-  if (is_executing (inferior_ptid))
-    return 0;
+      /* ... or from a spinning thread.  */
+      if (is_executing (inferior_ptid))
+       return 0;
+    }
 
   return 1;
 }