Я следовал инструкциям здесь. Установил cpptools. Создан tasks.json
со следующим содержимым:
{
"version": "0.1.0",
"command": "g++",
"isShellCommand": true,
"showOutput": "always",
"args": ["-g", "helloworld.c"]
}
И launch.json
следующего содержания:
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch (Windows)",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceRoot}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": false,
"windows": {
"MIMode" : "gdb",
"miDebuggerPath": "C:\\Mahesh\\Program Files\\mingw\\MinGW\\bin\\gdb.exe"
}
},
{
"name": "C++ Attach (Windows)",
"program": "${workspaceRoot}/a.exe",
"type": "cppvsdbg",
"request": "attach",
"processId": "${command.pickProcess}",
"windows": {
"MIMode" : "gdb",
"miDebuggerPath": "C:\\Mahesh\\Program Files\\mingw\\MinGW\\bin\\gdb.exe"
}
}
]
}
Когда я делаю Ctrl+Shift+B
, код строится, генерируя a.exe
. Когда я запускаю отладку, он дает следующий вывод:
--------------------------------------------------------------------------------
You may only use the C/C++ Extension for Visual Studio Code with Visual Studio
Code, Visual Studio or Xamarin Studio software to help you develop and test your
applications.
--------------------------------------------------------------------------------
Loaded 'C:\Mahesh\repos\VSCodeC\polyaddition\a.exe'. Symbols are not loaded.
Loaded 'C:\Windows\System32\ntdll.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\kernel32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\sysfer.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\msvcr100.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\QIPCAP64.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\oleaut32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\ole32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\msvcrt.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\gdi32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\user32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\lpk.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\usp10.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\rpcrt4.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\imm32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\msctf.dll'. Symbols are not loaded.
The thread 9524 has exited with code 0 (0x0).
Hello World!!!
The program '[7876] a.exe' has exited with code 0 (0x0).
Но код не попадает в точку отладки, которую я установил в коде. Вы можете видеть, что он печатает «Hello World!!!». Как я могу настроить так, чтобы он позволял мне выполнять код во время отладки?
Окружающая обстановка:
- Программа «[7876] a.exe» завершила работу с кодом 0 (0x0), сконфигурированным как «i686-pc-mingw32».
- gcc.exe (x86_64-win32-seh-rev201506, сборка mingwpy) 4.9.2
- g++.exe (x86_64-win32-seh-rev201506, сборка mingwpy) 4.9.2
Обновить
- В обсуждении в комментариях меня попросили запустить gcc с флагом
m32
, поскольку мой компилятор 64-разрядный, он может генерировать 64-битные двоичные файлы. Ноgcc -m32 helloworld.c
выдавал такие ошибки, как эта. комментарий здесь объясняет это опцией-m32
. При компиляции просит добавитьi686-w64-mingw32/x86_64-w64-mingw32
флагов. Ноgcc -x86_64-w64-mingw32 helloworld.c
выдаетlanguage not recognized
ошибку,gcc -i686-w64-mingw32 helloworld.c
выдаетunrecognized command line option
. Что я делаю неправильно? - Также в в этой статье говорится, что в настоящее время отладка возможна только с Linux, но не с Windows. Это так?
symbolSearchPath=C:\\path_1;D:\\path_2;etc...
- person Ingenioushax   schedule 10.03.2017launch.json
. Надеюсь, это немного поможет. github.com/Microsoft/vscode-cpptools/blob/master/launch. Мэриленд - person Ingenioushax   schedule 10.03.2017gcc -g helloworld.c
не генерирует никаких символов отладки. - person Mahesha999   schedule 10.03.2017