On Thu, Nov 22, 2018 at 12:14:40PM +0000, Marc Zyngier wrote:
> Running something like:
> 
>       decodecode vmlinux .
> 
> leads to interested results where not only the leading "." gets stripped
> from the displayed paths, but also anywhere in the string, displaying
> something like:
> 
>       kvm_vcpu_check_block (arch/arm64/kvm/virt/kvm/kvm_mainc:2141)
> 
> which doesn't help further processing.
> 
> Fix it by only stripping the base path if it is a prefix of the path.
> 
> Signed-off-by: Marc Zyngier <[email protected]>
> ---
>  scripts/decode_stacktrace.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/decode_stacktrace.sh b/scripts/decode_stacktrace.sh
> index 64220e36ce3b..98a7d63a723e 100755
> --- a/scripts/decode_stacktrace.sh
> +++ b/scripts/decode_stacktrace.sh
> @@ -78,7 +78,7 @@ parse_symbol() {
>       fi
>  
>       # Strip out the base of the path
> -     code=${code//$basepath/""}
> +     code=${code//^$basepath/""}

FWIW, you can do this using the usual POSIX shell string substitution:

        code=${code##$basepath}

[1] 
http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02

Mark.

Reply via email to