注意深くお読みくださいsignal(7),signal-safety(7)およびsigaction(2)です。 sa_restorer
は廃止され、あなたはそれを使用することを禁じられています。
正常に動作させるにはどうすればいいですか?
のでYouCompleteMeは正しい(と巧妙な!)それを示していないインチ
(あなたの質問は次のようになります。「?どうYouCompleteMeはsa_restorer
を隠すために十分賢いです」)
sa_restorer
は明らかに、例えばに表示されている間、それはそれを示していない理由を、より興味深い質問です/usr/include/x86_64-linux-gnu/bits/sigaction.h
ですが、これは別の質問です(回答はわかりません)。 特にの標準機能(たとえば、いくつかの設定ファイルがあります)が手元にある場合、私は驚いていません。 BTW YouCompleteMeはfree softwareまたはopen sourceなので、のソースコードを調べることができます。
sa_restorer
のタイプ(/usr/include/asm-generic/signal.h
参照)__sigrestore_t
と下線で始まる識別子は、実装に予約されており、YouCompleteMeは、おそらくそのようなフィールドまたはデータをスキップされるように、ユーザコードによって使用されるべきではありません。これは単なる推測です。 YoucompleteMeソースコードをご自身でチェックしてください(また、libclang
など他のツールのコードも参照してください)。
youcompletemeは私に私のLinuxシステムで
はsa_handlerのようにはsigactionの複数のメンバーを表示することができない理由
/usr/include/x86_64-linux-gnu/bits/sigaction.h
が(内部
<signal.h>
から含まれている)ので、私が本当に聞きたいことは、
sa_handler
は、マクロです
# define sa_handler __sigaction_handler.sa_handler
YouCompleteMeが完了メニューのすべてのマクロを表示しても驚かれることはありません。あまりにも多くの人がいる!これは(推測のみ)sa_handler
が完了のために明示的に提案されていない理由を説明するかもしれません。
あなたstruct sigaction
だけドキュメントが伝えるものです
は(あなたがsiga.sa_
を入力した場合、おそらくコンプリータは、より賢明かもしれないとはsa_handler
を提案するが、私は試していません)。実際の実装はより複雑です。 YouCompleteMeの動作を理解し、改善したい場合は、それを調べてください。 その挙動を改善するためにYouCompleteMeに(数週間または数ヶ月それに取り組んで)パッチを提案。
YouCompleteMeの今後のパッチでは、アンダースコアで始まる識別子とそれを使用するプリプロセッサマクロを処理する可能性があります。それは興味深いプロジェクトですが、数ヶ月かかるかもしれません。
'sa_restorer'フィールドは時代遅れで、指定されていません。あなたの 'youcompleteme'は正しく表示されていません。 –
私はそれを知りたいのですが、なぜ私のあなたの完成品が正しく動作しないのかを知りたいのです。 – cong
正しく巧みに働いています。あなたがそれを使用することができないので、 'sa_restorer'を表示すべきではありません。 –