[Mesa-dev] [PATCH] intel: aubinator: print out addresses of invalid instructions
Scott D Phillips
scott.d.phillips at intel.com
Mon Apr 9 16:04:55 UTC 2018
Lionel Landwerlin <lionel.g.landwerlin at intel.com> writes:
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> ---
> src/intel/tools/gen_batch_decoder.c | 22 +++++++++++++---------
> 1 file changed, 13 insertions(+), 9 deletions(-)
>
> diff --git a/src/intel/tools/gen_batch_decoder.c b/src/intel/tools/gen_batch_decoder.c
> index 1a8794c84e7..b56aea53f1d 100644
> --- a/src/intel/tools/gen_batch_decoder.c
> +++ b/src/intel/tools/gen_batch_decoder.c
> @@ -57,6 +57,7 @@ gen_batch_decode_ctx_finish(struct gen_batch_decode_ctx *ctx)
> }
>
> #define CSI "\e["
> +#define RED_COLOR CSI "31m"
> #define BLUE_HEADER CSI "0;44m"
> #define GREEN_HEADER CSI "1;42m"
> #define NORMAL CSI "0m"
> @@ -734,14 +735,22 @@ gen_print_batch(struct gen_batch_decode_ctx *ctx,
> length = gen_group_get_length(inst, p);
> assert(inst == NULL || length > 0);
> length = MAX2(1, length);
> +
> + const char *reset_color = ctx->flags & GEN_BATCH_DECODE_IN_COLOR ? NORMAL : "";
> +
> + uint64_t offset;
> + if (ctx->flags & GEN_BATCH_DECODE_OFFSETS)
> + offset = batch_addr + ((char *)p - (char *)batch);
> + else
> + offset = 0;
> +
> if (inst == NULL) {
> - fprintf(ctx->fp, "unknown instruction %08x\n", p[0]);
> + fprintf(ctx->fp, "%s0x%08"PRIx64": unknown instruction %08x%s\n",
> + RED_COLOR, offset, p[0], reset_color);
I guess the RED_COLOR here should conditionally be "" when
!GEN_BATCH_DECODE_IN_COLOR, otherwise we'll print red and never stop.
With that,
Reviewed-by: Scott D Phillips <scott.d.phillips at intel.com>
> continue;
> }
>
> - const char *color, *reset_color;
> - uint64_t offset;
> -
> + const char *color;
> const char *inst_name = gen_group_get_name(inst);
> if (ctx->flags & GEN_BATCH_DECODE_IN_COLOR) {
> reset_color = NORMAL;
> @@ -759,11 +768,6 @@ gen_print_batch(struct gen_batch_decode_ctx *ctx,
> reset_color = "";
> }
>
> - if (ctx->flags & GEN_BATCH_DECODE_OFFSETS)
> - offset = batch_addr + ((char *)p - (char *)batch);
> - else
> - offset = 0;
> -
> fprintf(ctx->fp, "%s0x%08"PRIx64": 0x%08x: %-80s%s\n",
> color, offset, p[0], inst_name, reset_color);
>
> --
> 2.17.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list