Quoting Pi-Hsun Shih (2020-07-20 01:27:07)
> Currently the basepath is removed only from the beginning of the string.
> When the symbol is inlined and there's multiple line outputs of
> addr2line, only the first line would have basepath removed.
>
> Change to remove the basepath prefix from all lines.
>
> Fixes: 31013836a71e ("scripts/decode_stacktrace: match basepath using shell
> prefix operator, not regex")
> Signed-off-by: Pi-Hsun Shih <[email protected]>
> Co-developed-by: Shik Chen <[email protected]>
> Signed-off-by: Shik Chen <[email protected]>
I thought Co-developed-by and the other SoB came before your SoB.
> ---
> scripts/decode_stacktrace.sh | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
Reviewed-by: Stephen Boyd <[email protected]>
>
> diff --git a/scripts/decode_stacktrace.sh b/scripts/decode_stacktrace.sh
> index 66a6d511b524..0869def435ee 100755
> --- a/scripts/decode_stacktrace.sh
> +++ b/scripts/decode_stacktrace.sh
> @@ -87,8 +87,8 @@ parse_symbol() {
> return
> fi
>
> - # Strip out the base of the path
> - code=${code#$basepath/}
> + # Strip out the base of the path on each line
> + code=$(while read -r line; do echo "${line#$basepath/}"; done <<<
> "$code")
>
> # In the case of inlines, move everything to same line
> code=${code//$'\n'/' '}
Given that there's a while loop now maybe this line above could be
removed and the echo above replaced with a printf.