summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/doc/ChangeLog6
-rw-r--r--gdb/doc/gdb.texinfo27
-rw-r--r--gdb/frame.h2
-rw-r--r--gdb/python/py-frame.c2
5 files changed, 39 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6a1ed8b2a27..d0c6ac8fb63 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2011-01-06 Tom Tromey <tromey@redhat.com>
+ * frame.h (enum frame_type) <INLINE_FRAME>: Fix comment.
+ * python/py-frame.c (gdbpy_initialize_frames): Add INLINE_FRAME
+ and ARCH_FRAME.
+
+2011-01-06 Tom Tromey <tromey@redhat.com>
+
* python/py-frame.c (frapy_block): Use get_frame_block.
2011-01-06 Joel Brobecker <brobecker@adacore.com>
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 7c33fb770f1..04e47149fc9 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,9 @@
+2011-01-06 Tom Tromey <tromey@redhat.com>
+
+ PR python/12133:
+ * gdb.texinfo (Frames In Python): Document various frame
+ constants.
+
2011-01-05 Joel Brobecker <brobecker@adacore.com>
* doc/agentexpr.texi, doc/all-cfg.texi, doc/annotate.texinfo,
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 8eb1ec8a676..f6a3747951f 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -22536,9 +22536,30 @@ obtained.
@end defmethod
@defmethod Frame type
-Returns the type of the frame. The value can be one of
-@code{gdb.NORMAL_FRAME}, @code{gdb.DUMMY_FRAME}, @code{gdb.SIGTRAMP_FRAME}
-or @code{gdb.SENTINEL_FRAME}.
+Returns the type of the frame. The value can be one of:
+@table @code
+@item gdb.NORMAL_FRAME
+An ordinary stack frame.
+
+@item gdb.DUMMY_FRAME
+A fake stack frame that was created by @value{GDBN} when performing an
+inferior function call.
+
+@item gdb.INLINE_FRAME
+A frame representing an inlined function. The function was inlined
+into a @code{gdb.NORMAL_FRAME} that is older than this one.
+
+@item gdb.SIGTRAMP_FRAME
+A signal trampoline frame. This is the frame created by the OS when
+it calls into a signal handler.
+
+@item gdb.ARCH_FRAME
+A fake stack frame representing a cross-architecture call.
+
+@item gdb.SENTINEL_FRAME
+This is like @code{gdb.NORMAL_FRAME}, but it is only used for the
+newest frame.
+@end table
@end defmethod
@defmethod Frame unwind_stop_reason
diff --git a/gdb/frame.h b/gdb/frame.h
index 8549e4387b3..b3611040885 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -204,7 +204,7 @@ enum frame_type
call. */
DUMMY_FRAME,
/* A frame representing an inlined function, associated with an
- upcoming (next, inner, younger) NORMAL_FRAME. */
+ upcoming (prev, outer, older) NORMAL_FRAME. */
INLINE_FRAME,
/* In a signal handler, various OSs handle this in various ways.
The main thing is that the frame may be far from normal. */
diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c
index 42ccce90071..3e11db1a85c 100644
--- a/gdb/python/py-frame.c
+++ b/gdb/python/py-frame.c
@@ -581,7 +581,9 @@ gdbpy_initialize_frames (void)
type's dictionary. That seems too messy. */
PyModule_AddIntConstant (gdb_module, "NORMAL_FRAME", NORMAL_FRAME);
PyModule_AddIntConstant (gdb_module, "DUMMY_FRAME", DUMMY_FRAME);
+ PyModule_AddIntConstant (gdb_module, "INLINE_FRAME", INLINE_FRAME);
PyModule_AddIntConstant (gdb_module, "SIGTRAMP_FRAME", SIGTRAMP_FRAME);
+ PyModule_AddIntConstant (gdb_module, "ARCH_FRAME", ARCH_FRAME);
PyModule_AddIntConstant (gdb_module, "SENTINEL_FRAME", SENTINEL_FRAME);
PyModule_AddIntConstant (gdb_module,
"FRAME_UNWIND_NO_REASON", UNWIND_NO_REASON);