microsoft / microsoft/vscode-cpptools
Can not show terminal inputs when break `readline()`
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 6.2k
- Forks
- 1.7k
- Ø Merge
- 14 Std. 46 Min.
- Gemergte PRs (30 T.)
- 61
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere das Problem mit echo.c unter Verwendung der gezeigten launch.json und task.json. Unterbreche dann die readline()-Sitzung mit Shift+F5 oder Ctrl+C und vergleiche die Darstellung der Terminaleingaben vor und nach der Eingabe von q. Beginne damit, den cppdbg-Terminal- und Debugger-Unterbrechungspfad nachzuverfolgen; abgeschlossen ist die Arbeit, wenn Eingaben nach der Unterbrechung sichtbar bleiben und das Verhalten durch einen Regressionstest abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- c, vscode
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100