On 31.05.2019 23:59, Evan Green wrote:
The manpage for modprobe mentions that dashes and underscores are
treated interchangeably in module names. The stack trace dumps seem
to print module names with underscores. Use bash to replace _ with
the pattern [-_] so that file names with dashes or underscores can be
found.

For example, this line:
[   27.919759]  hda_widget_sysfs_init+0x2b8/0x3a5 [snd_hda_core]

should find a module named snd-hda-core.ko.

Signed-off-by: Evan Green <evgr...@chromium.org>

Acked-by: Konstantin Khlebnikov <khlebni...@yandex-team.ru>

---

Note: This should apply atop linux-next.

Thanks to Doug for showing me the bash string substitution magic.

---
  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 fa704f17275e..13e5fbafdf2f 100755
--- a/scripts/decode_stacktrace.sh
+++ b/scripts/decode_stacktrace.sh
@@ -28,7 +28,7 @@ parse_symbol() {
                local objfile=${modcache[$module]}
        else
                [[ $modpath == "" ]] && return
-               local objfile=$(find "$modpath" -name "$module.ko*" -print 
-quit)
+               local objfile=$(find "$modpath" -name "${module//_/[-_]}.ko*" 
-print -quit)
                [[ $objfile == "" ]] && return
                modcache[$module]=$objfile
        fi

Reply via email to