microsoft / microsoft/vscode-cpptools
Can not show terminal inputs when break `readline()`
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 6.2k
- Fork
- 1.7k
- Merge medio
- 14h 46m
- PR unite (30g)
- 61
Descrizione
Environment
- OS and version: Windows 10
- VS Code: 1.77.3
- C/C++ extension: v1.15.2
- OS and version of remote machine (if applicable): Ubuntu 22.04
- GDB / LLDB version: GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1
Bug Summary and Steps to Reproduce
Bug Summary:
When use readline() and break(Shift + F5 or Ctrl + C) the program, terminal will not display inputs. (But still can execute commands).
Steps to reproduce:
- create
echo.c:
#include <stdio.h>
#include <readline/history.h>
#include <readline/readline.h>
int main() {
char* line = NULL;
while (line == NULL || strcmp(line, "q") != 0) {
line = readline("> ");
printf("%s\n", line);
}
return 0;
}
- Press
F5to debug program. - Press
Shift + F5orCtrl + C. cppdbgterminal will not show inputs.- Inputs will display normally if enter
q.
Debugger Configurations
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/echo.out",
"cwd": "${workspaceFolder}",
"externalConsole": false,
"MIMode": "gdb",
"preLaunchTask": "gcc"
}
]
}
task.json:
```json
{
"version": "2.0.0",
"tasks": [
{
"label": "gcc",
"type": "shell",
"command": "gcc echo.c -g -lreadline -oecho.out"
}
]
}
### Debugger Logs
```shell
Maybe no needs.
Other Extensions
No response
Additional Information
No response
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il problema con echo.c usando i launch.json e task.json mostrati, quindi interrompi la sessione readline() con Shift+F5 o Ctrl+C e confronta la visualizzazione dell'input del terminale prima e dopo l'inserimento di q. Inizia tracciando il percorso del terminale cppdbg e dell'interruzione del debugger; il lavoro è completo quando gli input rimangono visibili dopo l'interruzione e il comportamento è coperto da un test di regressione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- c, vscode
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100