[当我使用linux跟踪事件触发器时,我无法转储stacktrace

问题描述 投票:0回答:1

内核文档“跟踪:跟踪事件触发器”说,只要触发事件发生,我就可以使用stacktrace cmd将堆栈跟踪转储到跟踪缓冲区。但是我只有一个简单的字符串“堆栈跟踪”。这是我的配置:

cd / sys / kernel / debug / tracing / events / sched / sched_switch

echo 1>启用

echo'stacktrace'>触发器

触发猫

stacktrace:unlimited

[当我查看“跟踪”输出时,这是我所看到的:

    kworker/u2:0-4002  [000] d... 1275475.478000: sched_switch: prev_comm=kworker/u2:0 prev_pid=4002 prev_prio=120 prev_state=S ==> next_comm=sshd next_pid=3048 next_prio=120
kworker/u2:0-4002  [000] d... 1275475.478000: <stack trace>
        sshd-3048  [000] d... 1275475.478000: sched_switch: prev_comm=sshd prev_pid=3048 prev_prio=120 prev_state=S ==> next_comm=vim next_pid=4059 next_prio=120
        sshd-3048  [000] d... 1275475.478000: <stack trace>
         vim-4059  [000] d... 1275475.479000: sched_switch: prev_comm=vim prev_pid=4059 prev_prio=120 prev_state=R ==> next_comm=rcu_sched next_pid=8 next_prio=120
         vim-4059  [000] d... 1275475.479000: <stack trace>
   rcu_sched-8     [000] d... 1275475.479000: sched_switch: prev_comm=rcu_sched prev_pid=8 prev_prio=120 prev_state=S ==> next_comm=vim next_pid=4059 next_prio=120
   rcu_sched-8     [000] d... 1275475.479000: <stack trace>
         vim-4059  [000] d... 1275475.481000: sched_switch: prev_comm=vim prev_pid=4059 prev_prio=120 prev_state=R ==> next_comm=rcu_sched next_pid=8 next_prio=120
         vim-4059  [000] d... 1275475.481000: <stack trace>
   rcu_sched-8     [000] d... 1275475.481000: sched_switch: prev_comm=rcu_sched prev_pid=8 prev_prio=120 prev_state=S ==> next_comm=vim next_pid=4059 next_prio=120
   rcu_sched-8     [000] d... 1275475.481000: <stack trace>
         vim-4059  [000] d... 1275475.482000: sched_switch: prev_comm=vim prev_pid=4059 prev_prio=120 prev_state=R ==> next_comm=rcu_sched next_pid=8 next_prio=120
         vim-4059  [000] d... 1275475.482000: <stack trace>
   rcu_sched-8     [000] d... 1275475.482000: sched_switch: prev_comm=rcu_sched prev_pid=8 prev_prio=120 prev_state=S ==> next_comm=vim next_pid=4059 next_prio=120
   rcu_sched-8     [000] d... 1275475.482000: <stack trace>
         vim-4059  [000] d... 1275475.483000: sched_switch: prev_comm=vim prev_pid=4059 prev_prio=120 prev_state=R+ ==> next_comm=rcu_sched next_pid=8 next_prio=120
         vim-4059  [000] d... 1275475.483000: <stack trace>
   rcu_sched-8     [000] d... 1275475.483000: sched_switch: prev_comm=rcu_sched prev_pid=8 prev_prio=120 prev_state=S ==> next_comm=ksoftirqd/0 next_pid=7 next_prio=120
   rcu_sched-8     [000] d... 1275475.483000: <stack trace>
 ksoftirqd/0-7     [000] d... 1275475.483000: sched_switch: prev_comm=ksoftirqd/0 prev_pid=7 prev_prio=120 prev_state=S ==> next_comm=rcu_sched next_pid=8 next_prio=120
 ksoftirqd/0-7     [000] d... 1275475.483000: <stack trace>
   rcu_sched-8     [000] d... 1275475.483000: sched_switch: prev_comm=rcu_sched prev_pid=8 prev_prio=120 prev_state=S ==> next_comm=vim next_pid=4059 next_prio=120
   rcu_sched-8     [000] d... 1275475.483000: <stack trace>

如何使堆栈跟踪转储所有堆栈跟踪。

linux linux-kernel stack-trace ptrace ftrace
1个回答
0
投票

(我无法发表评论,因为我没有足够的“声誉”,但是作为ftrace的作者,我只是将我的评论作为答案)]

您要使用哪个内核版本(uname -r)和哪个体系结构?

© www.soinside.com 2019 - 2024. All rights reserved.