Terminal: 非アクティブな画面バッファへの書き込みが壊れています

作成日 2018年10月16日  ·  3コメント  ·  ソース: microsoft/terminal

Windowsバージョン10.0.17763.1

CreateConsoleScreenBuffer関数

コンソールには複数の画面バッファーを含めることができますが、アクティブな画面バッファーは1つだけです。 非アクティブな画面バッファにアクセスして読み取りと書き込みを行うことができますが、アクティブな画面バッファのみが表示されます。 新しい画面バッファーをアクティブな画面バッファーにするには、SetConsoleActiveScreenBuffer関数を使用します。

この機能は壊れています。非アクティブな画面バッファに送信されたテキストは、最終的にアクティブになり、画面に表示されます。

レガシーモードでは発生しません。

添付の問題を再現するための最小限のプロジェクト。

AlternativeScreenBufferBug.zip

Product-Conhost Resolution-Fix-Committed Work-Item

最も参考になるコメント

ありがとう。 幸いなことに/残念なことに、あなたは私が調査して修正するよりも早くバグを報告している。

私はこれをMSFT:19317384として社内で提出しました。 時間があるときに行きます。

全てのコメント3件

ありがとう。 幸いなことに/残念なことに、あなたは私が調査して修正するよりも早くバグを報告している。

私はこれをMSFT:19317384として社内で提出しました。 時間があるときに行きます。

これは、デフォルトで独自のVsDebugConsole.exeヘルパーを介して実行されるVisualStudioから実行する場合にのみ発生することに注意してください。

わかった。 私はこれを調査し、修正を作成し、レビューしてもらい、今日の時点でチェックインしました。

また、提供したサンプルのバリエーションを機能テストスイートにインストールして、将来これを再び台無しにしないようにしました。 または、少なくとも、この非常に特殊な方法でそれを台無しにしないこと。 :P

最小限の再現コードを提供していただき、ありがとうございます。 それは私がこのバグを好転させることができるペースを劇的に加速させました。

約3週間でインサイダービルドに到達するはずです。

このページは役に立ちましたか?
0 / 5 - 0 評価