[v3,3/4] Deprecate frame_stop_reason_string.

Message ID 1398855344-25278-4-git-send-email-aburgess@broadcom.com
State Superseded
Headers

Commit Message

Andrew Burgess April 30, 2014, 10:55 a.m. UTC
  Patch #4 adds frame specific stop reason strings.  It is better to use that
string rather than the existing generic stop reason string.  This patch
renames frame_stop_reason_string to deprecated_frame_stop_reason_string and
updates all the call sites to use the deprecated name.

Patch #4 adds the new frame specific stop reason, and some uses of the
deprecated funciton will be moved to this new API, however, in the python
and guile scripting API we expose a function that converts the stop reason
code into a string, without a frame, this will be harder to convert to the
new API and so I have currently left using the
deprecated_frame_stop_reason_string function.

This patch only makes sense if patch #4 is approved, but does this look ok?

Thanks,
Andrew




gdb/ChangeLog:

	* frame.c (frame_stop_reason_string): Rename to ...
	(deprecated_frame_stop_reason_string): this.
	* frame.h (frame_stop_reason_string): Rename to ...
	(deprecated_frame_stop_reason_string): this.
        * stack.c (frame_info): Update call to frame_stop_reason_string.
	(backtrace_command_1): Update call to frame_stop_reason_string.
	* guile/scm-frame.c (gdbscm_unwind_stop_reason_string): Update
	call to frame_stop_reason_string.
	* python/py-frame.c (gdbpy_frame_stop_reason_string): Update call
	to frame_stop_reason_string.
---
 gdb/frame.c           | 2 +-
 gdb/frame.h           | 5 +++--
 gdb/guile/scm-frame.c | 2 +-
 gdb/python/py-frame.c | 2 +-
 gdb/stack.c           | 4 ++--
 5 files changed, 8 insertions(+), 7 deletions(-)
  

Comments

Pedro Alves May 28, 2014, 5:26 p.m. UTC | #1
On 04/30/2014 11:55 AM, Andrew Burgess wrote:
> Patch #4 adds frame specific stop reason strings.  It is better to use that
> string rather than the existing generic stop reason string.  This patch
> renames frame_stop_reason_string to deprecated_frame_stop_reason_string and
> updates all the call sites to use the deprecated name.
> 
> Patch #4 adds the new frame specific stop reason, and some uses of the
> deprecated funciton will be moved to this new API, however, in the python
> and guile scripting API we expose a function that converts the stop reason
> code into a string, without a frame, this will be harder to convert to the

WDYM, harder?  It seems downright impossible to me.  :-)

The function still serves it's purpose of mapping the enum values
to string equivalents.  I don't really see a need to mark it deprecated.

IMO, the real problem with its signature is the "frame_" in its name.
The function converts an 'enum unwind_stop_reason' value to a string,
so like other similar cases in the tree, how about renaming the function
to match?  E.g.:

-const char *frame_stop_reason_string (enum unwind_stop_reason);
+const char *unwind_stop_reason_to_string (enum unwind_stop_reason);
  

Patch

diff --git a/gdb/frame.c b/gdb/frame.c
index 5f05968..5a6e0c7 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -2556,7 +2556,7 @@  get_frame_unwind_stop_reason (struct frame_info *frame)
 /* Return a string explaining REASON.  */
 
 const char *
-frame_stop_reason_string (enum unwind_stop_reason reason)
+deprecated_frame_stop_reason_string (enum unwind_stop_reason reason)
 {
   switch (reason)
     {
diff --git a/gdb/frame.h b/gdb/frame.h
index e451a93..7db5382 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -495,9 +495,10 @@  enum unwind_stop_reason
 
 enum unwind_stop_reason get_frame_unwind_stop_reason (struct frame_info *);
 
-/* Translate a reason code to an informative string.  */
+/* Translate a reason code to an informative string.  This is DEPRECATED,
+   use frame_stop_reason_string instead.  */
 
-const char *frame_stop_reason_string (enum unwind_stop_reason);
+const char *deprecated_frame_stop_reason_string (enum unwind_stop_reason);
 
 /* Unwind the stack frame so that the value of REGNUM, in the previous
    (up, older) frame is returned.  If VALUEP is NULL, don't
diff --git a/gdb/guile/scm-frame.c b/gdb/guile/scm-frame.c
index 6031a7f..ddd062c 100644
--- a/gdb/guile/scm-frame.c
+++ b/gdb/guile/scm-frame.c
@@ -944,7 +944,7 @@  gdbscm_unwind_stop_reason_string (SCM reason_scm)
   if (reason < UNWIND_FIRST || reason > UNWIND_LAST)
     scm_out_of_range (FUNC_NAME, reason_scm);
 
-  str = frame_stop_reason_string (reason);
+  str = deprecated_frame_stop_reason_string (reason);
   return gdbscm_scm_from_c_string (str);
 }
 
diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c
index 8c80d39..e7fcfe3 100644
--- a/gdb/python/py-frame.c
+++ b/gdb/python/py-frame.c
@@ -588,7 +588,7 @@  gdbpy_frame_stop_reason_string (PyObject *self, PyObject *args)
       return NULL;
     }
 
-  str = frame_stop_reason_string (reason);
+  str = deprecated_frame_stop_reason_string (reason);
   return PyUnicode_Decode (str, strlen (str), host_charset (), NULL);
 }
 
diff --git a/gdb/stack.c b/gdb/stack.c
index da7d977..4fa9dd6 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -1528,7 +1528,7 @@  frame_info (char *addr_exp, int from_tty)
       reason = get_frame_unwind_stop_reason (fi);
       if (reason != UNWIND_NO_REASON)
 	printf_filtered (_(" Outermost frame: %s\n"),
-			 frame_stop_reason_string (reason));
+			 deprecated_frame_stop_reason_string (reason));
     }
   else if (get_frame_type (fi) == TAILCALL_FRAME)
     puts_filtered (" tail call frame");
@@ -1847,7 +1847,7 @@  backtrace_command_1 (char *count_exp, int show_locals, int no_filters,
 	  reason = get_frame_unwind_stop_reason (trailing);
 	  if (reason >= UNWIND_FIRST_ERROR)
 	    printf_filtered (_("Backtrace stopped: %s\n"),
-			     frame_stop_reason_string (reason));
+			     deprecated_frame_stop_reason_string (reason));
 	}
     }
 }