スタックの一番上に「SYS#0」がありましたが、それが何を意味するかについてのドキュメントが見つかりません。
- コンパイラ: g++
- OS: ソラリス 9
- アーチ: SPARC
- Hoard 3.5.1のメモリ マネージャー libhoard_32.so
「gcore」を使用してコア ファイルを生成しました。コア ファイルに対して「pstack」コマンドを実行したときの出力を見ると、興味深いことを行っていた唯一のスレッドの呼び出しスタックの一番上に次のものがありました。
ff309858 SYS#0 ()
ff309848 void MyHashMap<const void*,unsigned,AlignedMmapInstance<65536U>::SourceHeap>::set(const void*,unsigned) (ff31eed4, 9bf20000, 10000, 40, 9bf1fff0, ff31e738) + 134
...
その LWP の pflags は次を示します。
/8: flags = PR_STOPPED|PR_ISTOP|PR_ASLEEP
why = PR_REQUESTED
sigmask = 0xfffffeff,0x00003fff
Sun のドキュメントには、この構文についての言及は見つかりませんでした。
編集: gcore を実行する前に、プロセスがハングしたようです。「SYS#0」はプロセスのハングと何らかの関係がありますか?
編集:次のスタック フレームと Hoard へのリンク、pflags 出力を追加しました
編集:受け入れられた答えは正しいです。さらに、少なくとも SPARC では、g1
レジスタにシステム コール番号が含まれている必要 がありますが、コア ファイルではそうではないようです。
トピック「間接システムコールとは?」おそらく別の質問の良い材料です。