Launching the BusyBox shell from Windows' CMD or PowerShell and pressing Ctrl+C will overlap both shells

オープン
#95 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
bash, c, powershell

調査の方向性

Start by reproducing the issue with bash.exe or sh.exe launched from Windows CMD or PowerShell, including after Ctrl+C interrupts a command such as sleep 10. Trace the terminal and interrupt handling involved in those shell entry points; done means Ctrl+C no longer leaves both shells receiving input or printing prompts.

索引モデルが issue の本文から書いたものです。

説明

I noticed this when trying to setup for myself an easy-to-use shell environment.

If I open a CMD or PowerShell window, and then launch bash.exe from the command line, and then I press Ctrl+C, it will appear like both CMD/PowerShell and the BusyBox shell will fight for my terminal. Both will print their prefixes at the same time, and it seems that each of my keystrokes is sent in alternance to each shell, so if I were to type "exit" and enter, one shell would get "xt" and the other "ei" and enter. The terminal becomes essentially unusable.

The Ctrl+C bug passes through any running command, so if I'm within the BusyBox shell running another program like GCC or even sleep 10, just one Ctrl+C will both interrupt the running program as expected, and cause the bug I describe. Pressing Ctrl+C more times does not appear to change anything, the only way that I'm aware of to work around the problem is to close and reopen the terminal.

Straightforward reproduction steps:

  1. Launch CMD or Powershell
  2. From the shell, execute BusyBox's bash.exe or sh.exe
  3. Optionally, launch a program that takes time, like sleep 10
  4. Press Ctrl+C once

The effects should be immediately visible; pressing return a few times shows the clash between the shells.

I'm not entirely sure where is the most relevant place to report this issue since I'm not sure what's in cause here; I can bump the bug report to BusyBox or elsewhere if needed.

主要言語
C
スター
5k
フォーク
408
平均マージ
4時間 40分
マージ済み PR(30日)
2

環境構築

  • Dockerfile または Docker Compose ファイルあり
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

skeeto/w64devkit のほかの issue

skeeto/w64devkit の issue をすべて見る

似ている issue

C の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。