lib: logging: add `%!R` conv. specifier for integer range set and use it
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Sat, 20 Jul 2019 22:18:40 +0000 (18:18 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Sun, 21 Jul 2019 00:15:13 +0000 (20:15 -0400)
This patch also renames "range set" to "integer range set" in logging
and precondition assertion messages.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Change-Id: I59aaf541d956d84fee5cad22393b230635558877
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1730
Tested-by: jenkins <jenkins@lttng.org>
CONTRIBUTING.adoc
src/lib/integer-range-set.c
src/lib/lib-logging.c
src/lib/trace-ir/field-class.c

index dcaa2d0a768e3f7c8e1f5e765a01a511e623815c..81e964f04311c335a4887d9a0f35f17e4040ccc4 100644 (file)
@@ -631,59 +631,63 @@ The available format specifiers are:
 
 |`F`
 |Trace IR field class
-|`+struct bt_field_class *+`
+|`+const struct bt_field_class *+`
 
 |`f`
 |Trace IR field
-|`+struct bt_field *+`
+|`+const struct bt_field *+`
 
 |`P`
 |Trace IR field path
-|`+struct bt_field_path *+`
+|`+const struct bt_field_path *+`
 
 |`E`
 |Trace IR event class
-|`+struct bt_event_class *+`
+|`+const struct bt_event_class *+`
 
 |`e`
 |Trace IR event
-|`+struct bt_event *+`
+|`+const struct bt_event *+`
 
 |`S`
 |Trace IR stream class.
-|`+struct bt_stream_class *+`
+|`+const struct bt_stream_class *+`
 
 |`s`
 |Trace IR stream
-|`+struct bt_stream *+`
+|`+const struct bt_stream *+`
 
 |`a`
 |Trace IR packet
-|`+struct bt_packet *+`
+|`+const struct bt_packet *+`
 
 |`T`
 |Trace IR trace class
-|`+struct bt_trace_class *+`
+|`+const struct bt_trace_class *+`
 
 |`t`
 |Trace IR trace
-|`+struct bt_trace *+`
+|`+const struct bt_trace *+`
 
 |`K`
 |Trace IR clock class
-|`+struct bt_clock_class *+`
+|`+const struct bt_clock_class *+`
 
 |`k`
 |Trace IR clock snapshot
-|`+struct bt_clock_snapshot *+`
+|`+const struct bt_clock_snapshot *+`
 
 |`v`
 |Value object
-|`+struct bt_value *+`
+|`+const struct bt_value *+`
+
+|`R`
+|Integer range set
+|`const struct bt_integer_range_set *`
 
 |`n`
 |Message
-|`+struct bt_message *+`
+|`+const struct bt_message *+`
 
 |`i`
 |Message iterator
@@ -695,35 +699,35 @@ The available format specifiers are:
 
 |`c`
 |Component
-|`+struct bt_component *+`
+|`+const struct bt_component *+`
 
 |`p`
 |Port
-|`+struct bt_port *+`
+|`+const struct bt_port *+`
 
 |`x`
 |Connection
-|`+struct bt_connection *+`
+|`+const struct bt_connection *+`
 
 |`g`
 |Graph
-|`+struct bt_graph *+`
+|`+const struct bt_graph *+`
 
 |`l`
 |Plugin
-|`const struct bt_plugin *`
+|`+const struct bt_plugin *+`
 
 |`r`
 |Error cause
-|`const struct bt_error_cause *`
+|`+const struct bt_error_cause *+`
 
 |`o`
 |Object pool
-|`+struct bt_object_pool *+`
+|`+const struct bt_object_pool *+`
 
 |`O`
 |Object
-|`+struct bt_object *+`
+|`+const struct bt_object *+`
 |===
 
 Conversion specifier examples:
index 3b232697091a4350fc4793259515f74a8537e05a..35483c93b27865818d018e52cb48fdb033dc4869 100644 (file)
 #include "func-status.h"
 #include "integer-range-set.h"
 
-uint64_t bt_integer_range_unsigned_get_lower(const struct bt_integer_range_unsigned *u_range)
+uint64_t bt_integer_range_unsigned_get_lower(
+               const struct bt_integer_range_unsigned *u_range)
 {
        const struct bt_integer_range *range = (const void *) u_range;
 
-       BT_ASSERT_PRE_DEV_NON_NULL(range, "Range");
+       BT_ASSERT_PRE_DEV_NON_NULL(range, "Integer range");
        return range->lower.u;
 }
 
-uint64_t bt_integer_range_unsigned_get_upper(const struct bt_integer_range_unsigned *u_range)
+uint64_t bt_integer_range_unsigned_get_upper(
+               const struct bt_integer_range_unsigned *u_range)
 {
        const struct bt_integer_range *range = (const void *) u_range;
 
-       BT_ASSERT_PRE_DEV_NON_NULL(range, "Range");
+       BT_ASSERT_PRE_DEV_NON_NULL(range, "Integer range");
        return range->upper.u;
 }
 
-int64_t bt_integer_range_signed_get_lower(const struct bt_integer_range_signed *i_range)
+int64_t bt_integer_range_signed_get_lower(
+               const struct bt_integer_range_signed *i_range)
 {
        const struct bt_integer_range *range = (const void *) i_range;
 
-       BT_ASSERT_PRE_DEV_NON_NULL(range, "Range");
+       BT_ASSERT_PRE_DEV_NON_NULL(range, "Integer range");
        return range->lower.i;
 }
 
-int64_t bt_integer_range_signed_get_upper(const struct bt_integer_range_signed *i_range)
+int64_t bt_integer_range_signed_get_upper(
+               const struct bt_integer_range_signed *i_range)
 {
        const struct bt_integer_range *range = (const void *) i_range;
 
-       BT_ASSERT_PRE_DEV_NON_NULL(range, "Range");
+       BT_ASSERT_PRE_DEV_NON_NULL(range, "Integer range");
        return range->upper.i;
 }
 
@@ -73,8 +77,8 @@ bt_bool bt_integer_range_unsigned_compare(
                const struct bt_integer_range_unsigned *range_a,
                const struct bt_integer_range_unsigned *range_b)
 {
-       BT_ASSERT_PRE_DEV_NON_NULL(range_a, "Range A");
-       BT_ASSERT_PRE_DEV_NON_NULL(range_b, "Range B");
+       BT_ASSERT_PRE_DEV_NON_NULL(range_a, "Integer range A");
+       BT_ASSERT_PRE_DEV_NON_NULL(range_b, "Integer range B");
        return (bt_bool) compare_ranges((const void *) range_a,
                (const void *) range_b);
 }
@@ -83,8 +87,8 @@ bt_bool bt_integer_range_signed_compare(
                const struct bt_integer_range_signed *range_a,
                const struct bt_integer_range_signed *range_b)
 {
-       BT_ASSERT_PRE_DEV_NON_NULL(range_a, "Range A");
-       BT_ASSERT_PRE_DEV_NON_NULL(range_b, "Range B");
+       BT_ASSERT_PRE_DEV_NON_NULL(range_a, "Integer range A");
+       BT_ASSERT_PRE_DEV_NON_NULL(range_b, "Integer range B");
        return (bt_bool) compare_ranges((const void *) range_a,
                (const void *) range_b);
 }
@@ -92,28 +96,35 @@ bt_bool bt_integer_range_signed_compare(
 uint64_t bt_integer_range_set_get_range_count(
                const bt_integer_range_set *range_set)
 {
-       BT_ASSERT_PRE_DEV_NON_NULL(range_set, "Range set");
+       BT_ASSERT_PRE_DEV_NON_NULL(range_set, "Integer range set");
        return (uint64_t) range_set->ranges->len;
 }
 
-const struct bt_integer_range_unsigned *bt_integer_range_set_unsigned_borrow_range_by_index_const(
-               const bt_integer_range_set_unsigned *u_range_set, uint64_t index)
+const struct bt_integer_range_unsigned *
+bt_integer_range_set_unsigned_borrow_range_by_index_const(
+               const bt_integer_range_set_unsigned *u_range_set,
+               uint64_t index)
 {
-       const struct bt_integer_range_set *range_set = (const void *) u_range_set;
+       const struct bt_integer_range_set *range_set =
+               (const void *) u_range_set;
 
-       BT_ASSERT_PRE_DEV_NON_NULL(range_set, "Range set");
+       BT_ASSERT_PRE_DEV_NON_NULL(range_set, "Integer range set");
        BT_ASSERT_PRE_DEV_VALID_INDEX(index, range_set->ranges->len);
-       return (const void *) BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(range_set, index);
+       return (const void *) BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(range_set,
+               index);
 }
 
-const struct bt_integer_range_signed *bt_integer_range_set_signed_borrow_range_by_index_const(
+const struct bt_integer_range_signed *
+bt_integer_range_set_signed_borrow_range_by_index_const(
                const bt_integer_range_set_signed *i_range_set, uint64_t index)
 {
-       const struct bt_integer_range_set *range_set = (const void *) i_range_set;
+       const struct bt_integer_range_set *range_set =
+               (const void *) i_range_set;
 
-       BT_ASSERT_PRE_DEV_NON_NULL(range_set, "Range set");
+       BT_ASSERT_PRE_DEV_NON_NULL(range_set, "Integer range set");
        BT_ASSERT_PRE_DEV_VALID_INDEX(index, range_set->ranges->len);
-       return (const void *) BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(range_set, index);
+       return (const void *) BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(range_set,
+               index);
 }
 
 static
@@ -121,6 +132,8 @@ void destroy_range_set(struct bt_object *obj)
 {
        struct bt_integer_range_set *range_set = (void *) obj;
 
+       BT_LIB_LOGD("Destroying integer range set: %!+R", range_set);
+
        if (range_set->ranges) {
                g_array_free(range_set->ranges, TRUE);
                range_set->ranges = NULL;
@@ -132,10 +145,14 @@ void destroy_range_set(struct bt_object *obj)
 static
 struct bt_integer_range_set *create_range_set(void)
 {
-       struct bt_integer_range_set *range_set = g_new0(struct bt_integer_range_set, 1);
+       struct bt_integer_range_set *range_set;
+
+       BT_LOGD_STR("Creating empty integer range set.");
+       range_set = g_new0(struct bt_integer_range_set, 1);
 
        if (!range_set) {
-               BT_LIB_LOGE_APPEND_CAUSE("Failed to allocate one range set.");
+               BT_LIB_LOGE_APPEND_CAUSE(
+                       "Failed to allocate one integer range set.");
                goto error;
        }
 
@@ -144,10 +161,11 @@ struct bt_integer_range_set *create_range_set(void)
                sizeof(struct bt_integer_range));
        if (!range_set->ranges) {
                BT_LIB_LOGE_APPEND_CAUSE(
-                       "Failed to allocate range set's range array.");
+                       "Failed to allocate integer range set's range array.");
                goto error;
        }
 
+       BT_LOGD_STR("Created empty integer range set.");
        goto end;
 
 error:
@@ -175,16 +193,17 @@ void add_range_to_range_set(struct bt_integer_range_set *range_set,
                .upper.u = u_upper,
        };
 
-       BT_ASSERT_PRE_NON_NULL(range_set, "Range set");
-       BT_ASSERT_PRE_DEV_HOT(range_set, "Range set", ": addr=%p", range_set);
+       BT_ASSERT_PRE_NON_NULL(range_set, "Integer range set");
+       BT_ASSERT_PRE_DEV_HOT(range_set, "Integer range set", ": %!+R",
+               range_set);
        g_array_append_val(range_set->ranges, range);
-       BT_LIB_LOGD("Added range to range set: "
-               "range-set-addr=%p, lower-unsigned=%" PRIu64 ", "
-               "upper-unsigned=%" PRIu64,
-               range_set, u_lower, u_upper);
+       BT_LIB_LOGD("Added integer range to integer range set: "
+               "%![range-set-]+R, lower-unsigned=%" PRIu64 ", "
+               "upper-unsigned=%" PRIu64, range_set, u_lower, u_upper);
 }
 
-enum bt_integer_range_set_add_range_status bt_integer_range_set_unsigned_add_range(
+enum bt_integer_range_set_add_range_status
+bt_integer_range_set_unsigned_add_range(
                struct bt_integer_range_set_unsigned *range_set,
                uint64_t lower, uint64_t upper)
 {
@@ -195,7 +214,8 @@ enum bt_integer_range_set_add_range_status bt_integer_range_set_unsigned_add_ran
        return BT_FUNC_STATUS_OK;
 }
 
-enum bt_integer_range_set_add_range_status bt_integer_range_set_signed_add_range(
+enum bt_integer_range_set_add_range_status
+bt_integer_range_set_signed_add_range(
                struct bt_integer_range_set_signed *range_set,
                int64_t lower, int64_t upper)
 {
@@ -211,12 +231,13 @@ BT_HIDDEN
 void _bt_integer_range_set_freeze(const struct bt_integer_range_set *range_set)
 {
        BT_ASSERT(range_set);
-       BT_LIB_LOGD("Freezing range set: addr=%p", range_set);
+       BT_LIB_LOGD("Freezing integer range set: %!+R", range_set);
        ((struct bt_integer_range_set *) range_set)->frozen = true;
 }
 
 BT_HIDDEN
-bool bt_integer_range_set_unsigned_has_overlaps(const struct bt_integer_range_set *range_set)
+bool bt_integer_range_set_unsigned_has_overlaps(
+               const struct bt_integer_range_set *range_set)
 {
        uint64_t i, j;
        bool has_overlap = false;
@@ -229,7 +250,8 @@ bool bt_integer_range_set_unsigned_has_overlaps(const struct bt_integer_range_se
 
                for (j = 0; j < range_set->ranges->len; j++) {
                        const struct bt_integer_range *range_j =
-                               BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(range_set, j);
+                               BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(
+                                       range_set, j);
 
                        if (i == j) {
                                continue;
@@ -248,7 +270,8 @@ end:
 }
 
 BT_HIDDEN
-bool bt_integer_range_set_signed_has_overlaps(const struct bt_integer_range_set *range_set)
+bool bt_integer_range_set_signed_has_overlaps(
+               const struct bt_integer_range_set *range_set)
 {
        uint64_t i, j;
        bool has_overlap = false;
@@ -261,7 +284,8 @@ bool bt_integer_range_set_signed_has_overlaps(const struct bt_integer_range_set
 
                for (j = 0; j < range_set->ranges->len; j++) {
                        const struct bt_integer_range *range_j =
-                               BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(range_set, j);
+                               BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(
+                                       range_set, j);
 
                        if (i == j) {
                                continue;
@@ -361,12 +385,14 @@ void bt_integer_range_set_unsigned_put_ref(
        bt_object_put_ref(range_set);
 }
 
-void bt_integer_range_set_signed_get_ref(const struct bt_integer_range_set_signed *range_set)
+void bt_integer_range_set_signed_get_ref(
+               const struct bt_integer_range_set_signed *range_set)
 {
        bt_object_get_ref(range_set);
 }
 
-void bt_integer_range_set_signed_put_ref(const struct bt_integer_range_set_signed *range_set)
+void bt_integer_range_set_signed_put_ref(
+               const struct bt_integer_range_set_signed *range_set)
 {
        bt_object_put_ref(range_set);
 }
index f36e33909fb9157daaf7e673019cc355d4e426f1..33f9d2f5bd2d6d3a11bc7fe5112bac7069ff9059 100644 (file)
@@ -39,6 +39,7 @@
 #include "assert-pre.h"
 #include "assert-post.h"
 #include "value.h"
+#include "integer-range-set.h"
 #include "object-pool.h"
 #include "graph/component-class.h"
 #include "graph/component-class-sink-colander.h"
@@ -871,6 +872,19 @@ static inline void format_value(char **buf_ch, bool extended,
        }
 }
 
+static inline void format_integer_range_set(char **buf_ch, bool extended,
+               const char *prefix,
+               const struct bt_integer_range_set *range_set)
+{
+       BUF_APPEND(", %srange-count=%u", PRFIELD(range_set->ranges->len));
+
+       if (!extended) {
+               return;
+       }
+
+       BUF_APPEND(", %sis-frozen=%d", PRFIELD(range_set->frozen));
+}
+
 static inline void format_message(char **buf_ch, bool extended,
                const char *prefix, const struct bt_message *msg)
 {
@@ -1405,6 +1419,9 @@ static inline void handle_conversion_specifier_bt(void *priv_data,
        case 'v':
                format_value(buf_ch, extended, prefix, obj);
                break;
+       case 'R':
+               format_integer_range_set(buf_ch, extended, prefix, obj);
+               break;
        case 'n':
                format_message(buf_ch, extended, prefix, obj);
                break;
index f1dd23955d95937991f650d2395b114a147dbb85..ffb972f4aa083058f093f3e5326ce39fd00e74f6 100644 (file)
@@ -512,7 +512,7 @@ add_mapping_to_enumeration_field_class(struct bt_field_class *fc,
 
        BT_ASSERT(fc);
        BT_ASSERT_PRE_NON_NULL(label, "Label");
-       BT_ASSERT_PRE_NON_NULL(range_set, "Range set");
+       BT_ASSERT_PRE_NON_NULL(range_set, "Integer range set");
        BT_ASSERT_PRE(!enumeration_field_class_has_mapping_with_label(
                enum_fc, label),
                "Duplicate mapping name in enumeration field class: "
@@ -1226,10 +1226,10 @@ int append_option_to_variant_with_selector_field_class(
        BT_ASSERT_PRE_NON_NULL(fc, "Field class");
        BT_ASSERT_PRE_NON_NULL(name, "Name");
        BT_ASSERT_PRE_NON_NULL(option_fc, "Option field class");
-       BT_ASSERT_PRE_NON_NULL(range_set, "Range set");
+       BT_ASSERT_PRE_NON_NULL(range_set, "Integer range set");
        BT_ASSERT_PRE_FC_HAS_ID(fc, expected_type, "Field class");
        BT_ASSERT_PRE(range_set->ranges->len > 0,
-               "Range set is empty: addr=%p", range_set);
+               "Integer range set is empty: %!+R", range_set);
        status = ranges_overlap(var_fc->common.common.named_fcs, range_set,
                expected_type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_SELECTOR,
                &has_overlap);
@@ -1239,8 +1239,8 @@ int append_option_to_variant_with_selector_field_class(
        }
 
        BT_ASSERT_PRE(!has_overlap,
-               "Range set's ranges and existing ranges have an overlap: "
-               "addr=%p", range_set);
+               "Integer range set's ranges and existing ranges have an overlap: "
+               "%!+R", range_set);
        opt = create_variant_with_selector_option(name, option_fc, range_set);
        if (!opt) {
                /* create_variant_with_selector_option() logs errors */
This page took 0.032465 seconds and 4 git commands to generate.