[SATYR PATCH 2/3] Remove sr_gdb_stacktrace_get_duplication_hash

Martin Milata mmilata at redhat.com
Thu Jun 27 16:35:53 UTC 2013


Function sr_thread_get_duphash should be used instead.

Signed-off-by: Martin Milata <mmilata at redhat.com>
---
 include/gdb/stacktrace.h   | 12 ------------
 lib/gdb_stacktrace.c       | 15 ---------------
 python/py_gdb_stacktrace.c | 20 --------------------
 python/py_gdb_stacktrace.h |  1 -
 4 files changed, 48 deletions(-)

diff --git a/include/gdb/stacktrace.h b/include/gdb/stacktrace.h
index ed63f82..bd55a0f 100644
--- a/include/gdb/stacktrace.h
+++ b/include/gdb/stacktrace.h
@@ -204,18 +204,6 @@ struct sr_gdb_frame *
 sr_gdb_stacktrace_get_crash_frame(struct sr_gdb_stacktrace *stacktrace);
 
 /**
- * Calculates the duplication hash string of the stacktrace.
- * @param stacktrace
- * It must be non-NULL pointer. It's not modified by calling this
- * function.
- * @returns
- * This function never returns NULL. The caller is responsible for
- * releasing the returned memory using function free().
- */
-char *
-sr_gdb_stacktrace_get_duplication_hash(struct sr_gdb_stacktrace *stacktrace);
-
-/**
  * Parses a textual stack trace and puts it into a structure.  If
  * parsing fails, the input parameter is not changed and NULL is
  * returned.
diff --git a/lib/gdb_stacktrace.c b/lib/gdb_stacktrace.c
index 9950c69..41a4b8d 100644
--- a/lib/gdb_stacktrace.c
+++ b/lib/gdb_stacktrace.c
@@ -363,21 +363,6 @@ sr_gdb_stacktrace_get_crash_frame(struct sr_gdb_stacktrace *stacktrace)
     return crash_frame;
 }
 
-char *
-sr_gdb_stacktrace_get_duplication_hash(struct sr_gdb_stacktrace *stacktrace)
-{
-    stacktrace = sr_gdb_stacktrace_dup(stacktrace);
-    struct sr_gdb_thread *crash_thread = sr_gdb_stacktrace_find_crash_thread(stacktrace);
-    if (crash_thread)
-        sr_gdb_stacktrace_remove_threads_except_one(stacktrace, crash_thread);
-
-    sr_normalize_gdb_stacktrace(stacktrace);
-    sr_gdb_stacktrace_limit_frame_depth(stacktrace, 3);
-    char *hash = sr_gdb_stacktrace_to_text(stacktrace, false);
-    sr_gdb_stacktrace_free(stacktrace);
-    return hash;
-}
-
 struct sr_gdb_stacktrace *
 sr_gdb_stacktrace_parse(const char **input,
                         struct sr_location *location)
diff --git a/python/py_gdb_stacktrace.c b/python/py_gdb_stacktrace.c
index 8cd82fb..bde65d2 100644
--- a/python/py_gdb_stacktrace.c
+++ b/python/py_gdb_stacktrace.c
@@ -44,10 +44,6 @@
                               "Computes the quality from stacktrace, crash thread and " \
                               "frames around the crash."
 
-#define b_get_duplication_hash_doc "Usage: stacktrace.get_duplication_hash()\n" \
-                                   "Returns: string - duplication hash\n" \
-                                   "Computes the duplication hash used to compare stacktraces."
-
 #define b_find_address_doc "Usage: stacktrace.find_address(address)\n" \
                            "address: long - address to find" \
                            "Returns: satyr.Sharedlib object or None if not found\n" \
@@ -87,7 +83,6 @@ gdb_stacktrace_methods[] =
     { "limit_frame_depth",    sr_py_gdb_stacktrace_limit_frame_depth,    METH_VARARGS, b_limit_frame_depth_doc    },
     { "quality_simple",       sr_py_gdb_stacktrace_quality_simple,       METH_NOARGS,  b_quality_simple_doc       },
     { "quality_complex",      sr_py_gdb_stacktrace_quality_complex,      METH_NOARGS,  b_quality_complex_doc      },
-    { "get_duplication_hash", sr_py_gdb_stacktrace_get_duplication_hash, METH_NOARGS,  b_get_duplication_hash_doc },
     { "find_address",         sr_py_gdb_stacktrace_find_address,         METH_VARARGS, b_find_address_doc         },
     { "set_libnames",         sr_py_gdb_stacktrace_set_libnames,         METH_NOARGS,  b_set_libnames_doc         },
     { "normalize",            sr_py_gdb_stacktrace_normalize,            METH_NOARGS,  b_normalize_doc            },
@@ -571,21 +566,6 @@ sr_py_gdb_stacktrace_quality_complex(PyObject *self, PyObject *args)
 }
 
 PyObject *
-sr_py_gdb_stacktrace_get_duplication_hash(PyObject *self, PyObject *args)
-{
-    struct sr_py_gdb_stacktrace *this = (struct sr_py_gdb_stacktrace*)self;
-    if (gdb_prepare_linked_lists(this) < 0)
-        return NULL;
-
-    /* does not destroy the linked list */
-    char *duphash = sr_gdb_stacktrace_get_duplication_hash(this->stacktrace);
-    PyObject *result = Py_BuildValue("s", duphash);
-    free(duphash);
-
-    return result;
-}
-
-PyObject *
 sr_py_gdb_stacktrace_find_address(PyObject *self, PyObject *args)
 {
     struct sr_py_gdb_stacktrace *this = (struct sr_py_gdb_stacktrace*)self;
diff --git a/python/py_gdb_stacktrace.h b/python/py_gdb_stacktrace.h
index fc2fc8b..5c7e1f1 100644
--- a/python/py_gdb_stacktrace.h
+++ b/python/py_gdb_stacktrace.h
@@ -70,7 +70,6 @@ PyObject *sr_py_gdb_stacktrace_find_crash_thread(PyObject *self, PyObject *args)
 PyObject *sr_py_gdb_stacktrace_limit_frame_depth(PyObject *self, PyObject *args);
 PyObject *sr_py_gdb_stacktrace_quality_simple(PyObject *self, PyObject *args);
 PyObject *sr_py_gdb_stacktrace_quality_complex(PyObject *self, PyObject *args);
-PyObject *sr_py_gdb_stacktrace_get_duplication_hash(PyObject *self, PyObject *args);
 PyObject *sr_py_gdb_stacktrace_find_address(PyObject *self, PyObject *args);
 PyObject *sr_py_gdb_stacktrace_set_libnames(PyObject *self, PyObject *args);
 PyObject *sr_py_gdb_stacktrace_normalize(PyObject *self, PyObject *args);
-- 
1.7.11.7



More information about the Crash-catcher mailing list