Vouloir utiliser le ftrace quand on veut tracer la fonction de noyau de gs4.
Donc, j'ai accepté le contenu d'ici.
http://www.linuxforu.com/2010/11/kernel-tracing-with-ftrace-part-1/
mount -t debugfs nodev /sys/kernel/debug
Lorsque vous entrez la commande, sortez comme suit.
root@android:/sys/kernel/debug/tracing # mount -t debugfs nodev /nodev /sys/kernel/debug
mount: Device or resource busy
Aussi,
root@android:/sys/kernel/debug/tracing # cat current_tracer
nop
root@android:/sys/kernel/debug/tracing # echo function > current_tracer
root@android:/sys/kernel/debug/tracing # cat current_tracer
nop
Sortir comme ça.
root@android:/sys/kernel/debug/tracing # ls -al current_tracer
-rw-r--r-- root root 0 2013-08-27 20:32 current_tracer
La dernière mise à jour changera, il n'est pas possible de changer le contenu de currnet_tracer.
Bien sûr, sortez comme suit.
root@android:/sys/kernel/debug/tracing # cat trace
# tracer: nop
#
# entries-in-buffer/entries-written: 0/0 #P:1
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID CPU# |||| TIMESTAMP FUNCTION
# | | | |||| | |
Je ne peux pas changer le currnet_tracer. tracing_on est capable de changer.
root@android:/sys/kernel/debug/tracing # cat tracing_on
0
root@android:/sys/kernel/debug/tracing # echo 1 > tracing_on
root@android:/sys/kernel/debug/tracing # cat tracing_on
1
root@android:/sys/kernel/debug/tracing #
Je peux utiliser atrace, je sors les informations en fonction des options correspondantes comme suit, je veux suivre l'appel de la fonction du noyau.
root@android:/sys/kernel/debug/tracing # atrace -s -w capturing trace < /test/trace.txt
root@android:/sys/kernel/debug/tracing # cat /test/trace.txt
capturing trace... done
TRACE:
# tracer: nop
#
# entries-in-buffer/entries-written: 532/532 #P:1
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID CPU# |||| TIMESTAMP FUNCTION
# | | | |||| | |
atrace-22948 [000] ...2 623726.157067: sched_switch: prev_comm=atrace prev_pid=22948 prev_prio=120 prev_state=S ==> next_comm=AsyncTask #2 next_pid=21620 next_prio=130
....
Je veux savoir comment changer le current_tracer et comment monter en utilisant les debugfs.
Pour recevoir et reconnaissant d'aider.
Remercier!
Réponses:
5 pour la réponse № 1Vous manquez le point de l'option available_tracers sous / sys / kernel / debug / tracing, qui indique quelles sont les fonctionnalités de traçage disponibles dans le noyau. Pour voir la liste des traceurs disponibles, faites -
cat /sys/kernel/debug/tracing/available_tracers
Cela vous montrera tous les traceurs disponibles. Maintenant, si vous avez trouvé "fonction", vous pourrez tracer les fonctions du noyau sinon.
Si vous avez l'option de fonction de suivi disponible pour l'activer, procédez comme suit -
echo function > /sys/kernel/debug/tracing/current_tracer
echo 1 > /sys/kernel/debug/tracing/tracing_on
Maintenant, vous trouverez la sortie de traçage via / sys / kernel / debug / tracing / trace. Pour désactiver le traçage, faites
echo 0 > /sys/kernel/debug/tracing/tracing_on
echo nop > /sys/kernel/debug/tracing/current_tracer
Donc, la principale exigence pour changer le traceur actuel est que cette fonctionnalité doit être disponible, ce qui peut être trouvé via current_tracer.
1 pour la réponse № 2
Vous feriez peut-être mieux d’utiliser trace-cmd pour faire de telles choses, c’est beaucoup plus facile que d’imprimer ces traces dans la console.
http://www.omappedia.com/wiki/Installing_and_Using_Ftrace#Using_FTrace_with_Trace-cmd