|
@@ -3435,6 +3435,19 @@ eval_num_arg(void *data, int size, struct event_format *event, struct print_arg
|
|
|
goto out_warning_op;
|
|
|
}
|
|
|
break;
|
|
|
+ case PRINT_DYNAMIC_ARRAY:
|
|
|
+ /* Without [], we pass the address to the dynamic data */
|
|
|
+ offset = pevent_read_number(pevent,
|
|
|
+ data + arg->dynarray.field->offset,
|
|
|
+ arg->dynarray.field->size);
|
|
|
+ /*
|
|
|
+ * The actual length of the dynamic array is stored
|
|
|
+ * in the top half of the field, and the offset
|
|
|
+ * is in the bottom half of the 32 bit field.
|
|
|
+ */
|
|
|
+ offset &= 0xffff;
|
|
|
+ val = (unsigned long long)(data + offset);
|
|
|
+ break;
|
|
|
default: /* not sure what to do there */
|
|
|
return 0;
|
|
|
}
|