microsoft / microsoft/vscode-cpptools

Can not show terminal inputs when break `readline()`

Aperta
#10,865 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

debugger more info needed
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:

  1. 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;
}
  1. Press F5 to debug program.
  2. Press Shift + F5 or Ctrl + C .
  3. cppdbg terminal will not show inputs.
  4. 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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. 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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.