/ / trace de la fonction du noyau android utilisant ftrace? - Android, Linux

trace de la fonction du noyau android utilisant ftrace? - Android, Linux

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 № 1

Vous 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