microsoft / microsoft/vscode-cpptools
Printing characters for file.peek() in watch window - debug
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 6.2k
- Fork
- 1.7k
- Merge medio
- 14h 46m
- PR unite (30g)
- 61
Descrizione
Typing file.peek() in the watch window under debug mode prints this message while stepping in my code: file.peek(): Couldn't find method std::ifstream::peek.
I have added a .natvis file but I am still unable to see what the peek method is analyzing in the watch window.
I also get the error Unable to step out. Operation failed with error code 0x80004004 while trying to step out (SHIFT+F11) in my code which is probably due to gdb according to this post: #215. EDIT: I corrected the link.
- OS : Ubuntu 16.04.2 LTS
- VSCode : Version 1.14.2
- gdb : GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
- vscode.cpptools-0.12.2
Any ideas on how to have file.peek() in the watch window show the strings?
Here is a sample code along with my natvis and json files:
debugFct.cpp:
#include <iostream>
#include <fstream>
using namespace std; // using only on test code
int main(){
int numChar = 0;
char numb;
do {
++numChar;
if (file.peek() == '\n')
break;
cout << numb << " ";
}
while(file.get(numb));
return 0;
}
debug.natvis file placed in /usr/share/code/ folder:
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="file.peek()">
<DisplayString>{file.peek(),[1]su}</DisplayString>
</Type>
</AutoVisualizer>
launch.json:
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/debugFct",
"args": ["-D_GLIBCXX_DEBUG"],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"showDisplayString": true,
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-exec -enable-pretty-printing",
"ignoreFailures": true
},
{
"text": "handle SIGPIPE nostop noprint pass",
"description": "ignore SIGPIPE",
"ignoreFailures": true
}
]
}
]
settings.json:
"files.associations": {
"string": "cpp",
"iostream": "cpp",
"istream": "cpp",
"iosfwd": "cpp"
},
"C_Cpp.intelliSenseEngine": "Default",
"code-runner.executorMap":{
"cpp": "cd $dir && g++ $fileName -std=c++11 -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
},
"editor.minimap.enabled": false,
"vsicons.presets.tsOfficial": true,
"workbench.iconTheme": "vscode-icons"
Thank you
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
Inizia con la riproduzione in debugFct.cpp e nei relativi file debug.natvis, launch.json e settings.json. Riproduci la valutazione nella finestra di osservazione usando le versioni elencate di VS Code, cpptools, Ubuntu e gdb, quindi separala dall’errore di uscita con SHIFT+F11. Il lavoro sarà considerato completato quando l’ambito dell’issue sarà confermato e sarà disponibile un modo supportato per visualizzare i caratteri sottoposti a peek oppure sarà documentata una limitazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp, vscode
- Ambito
- devtools
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100