[Crash-utility] [PATCH] crash extension: trace

Wengang Wang wen.gang.wang at oracle.com
Tue Mar 16 21:24:11 UTC 2021


Since I am not in the mailing list, reply to me pls.

> On Mar 16, 2021, at 2:22 PM, Wengang Wang <wen.gang.wang at oracle.com> wrote:
> 
> From a UEK5 vmcore, I see that
> 
> crash> p &__start___trace_bprintk_fmt
> $1 = (const char *(*)[]) 0xffffffffa163f1d0
> crash> p &__stop___trace_bprintk_fmt
> $2 = (const char *(*)[]) 0xffffffffa163f1f0
> 
> so (0xffffffffa163f1f0 - 0xffffffffa163f1d0)/8 = 4.
> 
> there are two zero addresses at index 2 and 3.
> crash> rd __start___trace_bprintk_fmt 4
> ffffffffa163f1d0:  ffffffffa11ccdca ffffffffa11ccdca   ................
> ffffffffa163f1e0:  0000000000000000 0000000000000000   ................
> 
> current implementation will fail (no output for trace show command)
> on seeing the zero addresses.
> 
> fix: ignore zero addresses in add_print_address.
> 
> tested to be good (compared the ftrace log from vmcore and that from live system).
> 
> Signed-off-by: Wengang Wang <wen.gang.wang at oracle.com>
> ---
> extensions/trace.c | 2 ++
> 1 file changed, 2 insertions(+)
> 
> diff --git a/extensions/trace.c b/extensions/trace.c
> index c26b6c7..491e4eb 100644
> --- a/extensions/trace.c
> +++ b/extensions/trace.c
> @@ -2226,6 +2226,8 @@ static int add_print_address(long address)
> 	size_t len;
> 	int i;
> 
> +	if (!address)
> +		return 0;
> 	len = read_string(address, string, sizeof(string));
> 	if (!len)
> 		return -1;
> -- 
> 1.8.3.1
> 





More information about the Crash-utility mailing list