[gimp] libgimpbase: allow NULL prog_name in gimp_print_stack_trace().
- From: Jehan Pagès <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimpbase: allow NULL prog_name in gimp_print_stack_trace().
- Date: Mon, 12 Feb 2018 03:00:17 +0000 (UTC)
commit 4e293a8696c3c5fa6fa2bdba39979f91d4c2e91b
Author: Jehan <jehan girinstud io>
Date: Mon Feb 12 01:50:19 2018 +0100
libgimpbase: allow NULL prog_name in gimp_print_stack_trace().
The only debugger command which uses this value currently is gdb. And
even there, it doesn't look mandatory. The alternative call using "-p"
option does not require the program name. The manual doesn't say if
calling with the program name has any advantage (but I don't see why it
would, the PID is enough to find a process). Just in case, I leave the
prog_name parameter (because it's easier to make a parameter useless
than changing a libgimp* API) but simply allows setting it to NULL.
libgimpbase/gimputils.c | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/libgimpbase/gimputils.c b/libgimpbase/gimputils.c
index ba2ddcb..1f2356f 100644
--- a/libgimpbase/gimputils.c
+++ b/libgimpbase/gimputils.c
@@ -1084,10 +1084,10 @@ gimp_flags_value_get_abbrev (GFlagsClass *flags_class,
* @trace: location to store a newly allocated string of the trace.
*
* Attempts to generate a stack trace at current code position in
- * @prog_name. @prog_name is mostly a helper, but it has to be the
- * program name of the current program. This function is not meant to
- * generate stack trace for third-party programs, and will attach the
- * current process id only.
+ * @prog_name. @prog_name is mostly a helper and can be set to NULL.
+ * Nevertheless if set, it has to be the current program name (argv[0]).
+ * This function is not meant to generate stack trace for third-party
+ * programs, and will attach the current process id only.
* Internally, this function uses `gdb` or `lldb` if they are available,
* or the stacktrace() API on platforms where it is available. It always
* fails on Win32.
@@ -1135,6 +1135,9 @@ gimp_print_stack_trace (const gchar *prog_name,
gchar *args[7] = { "gdb", "-batch", "-ex", "backtrace full",
(gchar *) prog_name, NULL, NULL };
+ if (prog_name == NULL)
+ args[4] = "-p";
+
args[5] = gimp_pid;
/* Redirect the debugger output. */
@@ -1255,11 +1258,12 @@ gimp_print_stack_trace (const gchar *prog_name,
}
/**
- * gimp_print_stack_trace:
+ * gimp_on_error_query:
* @prog_name: the program to attach to.
*
* This is mostly the same as g_on_error_query() except that we use our
* own backtrace function, much more complete.
+ * @prog_name must be the current program name (argv[0]).
* It does nothing on Win32.
*
* Since: 2.10
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]