Fix: flt.lttng-utils.debug-info: `ip` field is 32bit on 32bit cpus
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Tue, 7 May 2019 21:32:29 +0000 (17:32 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 8 May 2019 18:07:19 +0000 (14:07 -0400)
Issue
=====
The debug-info component enforces that the `ip` field used to resolve
addresses is a 64bit integer, but the LTTng UST `ip` context field is
32bit on a 32bit cpu. A debug-info component thus fail to recognize that
the trace has all the necessary information to resolve the addresses.

Here is the metadata representing the context on a 32bit system:
        event.context := struct {
                integer { size = 32; align = 8; signed = 1; encoding = none; base = 10; } _vpid;
                integer { size = 32; align = 8; signed = 0; encoding = none; base = 16; } _ip;
        };

Here is the metadata representing the context on a 64bit system:
        event.context := struct {
                integer { size = 32; align = 8; signed = 1; encoding = none; base = 10; } _vpid;
                integer { size = 64; align = 8; signed = 0; encoding = none; base = 16; } _ip;
        };

Solution
========
Remove the integer size check in the
`is_event_common_ctx_dbg_info_compatible()` function.

Drawback
========
None.

Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Change-Id: I3938a5f71a2406876573a5aa381f7d3dd4d632d6
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1270
Reviewed-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
plugins/lttng-utils/debug-info/utils.c

index d9c5fa50a35faf3ac3a0aa2a38c98b17a71484cf..8f1bddea6c9b21f7398a73f7a32b549373c5e7a5 100644 (file)
@@ -88,10 +88,6 @@ bt_bool is_event_common_ctx_dbg_info_compatible(const bt_field_class *in_field_c
                goto end;
        }
 
-       if (bt_field_class_integer_get_field_value_range(ip_fc) != 64) {
-               goto end;
-       }
-
        member = bt_field_class_structure_borrow_member_by_name_const(
                        in_field_class, VPID_FIELD_NAME);
        if (!member) {
This page took 0.02484 seconds and 4 git commands to generate.