Si je compile le programme suivant :
$ cat main.cpp && g++ main.cpp
#include <time.h>
int main() {
struct timespec ts;
return clock_gettime(CLOCK_MONOTONIC, &ts);
}
et ensuite l'exécuter sous strace
dans Kubuntu "standard", j'obtiens ceci :
strace -tt --trace=clock_gettime ./a.out
17:58:40.395200 +++ exited with 0 +++
Comme vous pouvez le voir, il n'y a pas clock_gettime
(complet strace
La sortie est aquí ).
D'un autre côté, si j'exécute la même application dans mon noyau linux personnalisé sous le nom de qemu
j'obtiens le résultat suivant :
strace -tt --trace=clock_gettime ./a.out
18:00:53.082115 clock_gettime(CLOCK_MONOTONIC, {tv_sec=101481, tv_nsec=107976517}) = 0
18:00:53.082331 +++ exited with 0 +++
Ce qui est le plus attendu - il y a clock_gettime
.
Donc, mes questions sont :
- Pourquoi est-ce que
strace
ignorer/omettreclock_gettime
si je l'exécute dans Kubuntu ? - Pourquoi
strace
Le comportement de l'utilisateur diffère selon l'environnement/le noyau ?