From ccfc3d6e06d5b9d2ebd8b8e4239f1313e33f40ac Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 6 Jan 2011 18:34:16 +0000 Subject: [PATCH] gdb * frame.h (enum frame_type) : Fix comment. * python/py-frame.c (gdbpy_initialize_frames): Add INLINE_FRAME and ARCH_FRAME. gdb/doc PR python/12133: * gdb.texinfo (Frames In Python): Document various frame constants. --- gdb/ChangeLog | 6 ++++++ gdb/doc/ChangeLog | 6 ++++++ gdb/doc/gdb.texinfo | 27 ++++++++++++++++++++++++--- gdb/frame.h | 2 +- gdb/python/py-frame.c | 2 ++ 5 files changed, 39 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6a1ed8b2a2..d0c6ac8fb6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2011-01-06 Tom Tromey + + * frame.h (enum frame_type) : Fix comment. + * python/py-frame.c (gdbpy_initialize_frames): Add INLINE_FRAME + and ARCH_FRAME. + 2011-01-06 Tom Tromey * python/py-frame.c (frapy_block): Use get_frame_block. diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 7c33fb770f..04e47149fc 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,9 @@ +2011-01-06 Tom Tromey + + PR python/12133: + * gdb.texinfo (Frames In Python): Document various frame + constants. + 2011-01-05 Joel Brobecker * doc/agentexpr.texi, doc/all-cfg.texi, doc/annotate.texinfo, diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 8eb1ec8a67..f6a3747951 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 8549e4387b..b361104088 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 42ccce9007..3e11db1a85 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); -- 2.34.1