J'ai rencontré "SYS # 0" en haut d'une pile et je ne trouve aucune documentation sur ce que cela signifie.Sortie Solaris pstack: que signifie "SYS # 0"?
- compilateur: g ++
- OS: Solaris 9
- Arch: SPARC
- Memory Manager libhoard_32.so de Hoard 3.5.1
Nous avons utilisé "gcore" pour générer un fichier de base. En regardant la sortie de l'exécution de la commande « pstack » contre le fichier de base, le seul fil qui a fait quelque chose d'intéressant avait le suivant au sommet de sa pile d'appel:
ff309858 SYS#0 ()
ff309848 void MyHashMap<const void*,unsigned,AlignedMmapInstance<65536U>::SourceHeap>::set(const void*,unsigned) (ff31eed4, 9bf20000, 10000, 40, 9bf1fff0, ff31e738) + 134
...
pflags pour cette LWP montre:
/8: flags = PR_STOPPED|PR_ISTOP|PR_ASLEEP
why = PR_REQUESTED
sigmask = 0xfffffeff,0x00003fff
Je n'ai trouvé aucune mention de cette syntaxe dans la documentation de Sun.
Editer: Le processus semble avoir été suspendu quelque temps avant d'effectuer le gcore. Est-ce que "SYS # 0" est en quelque sorte lié au processus?
Edit: ajouté de l'image suivante de la pile et un lien vers Hoard, pflags sortie
Edit: La réponse acceptée est correcte. En outre, au moins sur SPARC, le g1
registre shouldcontain le numéro d'appel système, mais cela ne semble pas être le cas dans notre fichier de base.
Le sujet "Qu'est-ce qu'un appel système indirect?" est probablement un bon matériel pour une autre question.
Quel est le cadre après SYS # 0? –
C'est dans la version 3.5.1 du gestionnaire de mémoire Hoard que nous utilisons. –