You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gu...@apache.org on 2023/01/19 13:35:28 UTC

[nuttx] 02/02: tools: Add showstack.sh to parse *.su files

This is an automated email from the ASF dual-hosted git repository.

gustavonihei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 931677a86eb6c7f0dde4431f6d95922e0ed1c05e
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Wed Jan 18 23:43:05 2023 +0800

    tools: Add showstack.sh to parse *.su files
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 tools/showstack.sh | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/tools/showstack.sh b/tools/showstack.sh
new file mode 100755
index 0000000000..57d74fb4a5
--- /dev/null
+++ b/tools/showstack.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+############################################################################
+# tools/showstack.sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+function analyse()
+{
+  sufiles=$(find $1 -name "*.su")
+  if [[ $sufiles != "" ]]
+  then
+    echo $sufiles | xargs -n1 cat | awk -F'\t' '{print $2", "$1}' | sort -n -r | head -n $2
+  fi
+}
+
+if [[ $# == 0 ]]; then
+  echo "usage: $0 <dir>..."
+  exit
+fi
+
+for dir in $@; do
+  analyse $dir 20
+done