#c #linux #debugging #visual-studio-code
#c #linux #отладка #visual-studio-code #c
Вопрос:
Я хотел отладить свой код в Visual Studio Code. Однако я чего-то не понимаю a.out
. Я думаю, что, возможно, я удалил это. Как мне вернуть его обратно? Есть ли какой-нибудь способ отлаживать без этого? Могу ли я написать это сам?
Единственное, что я придумал, это скопировать вставленный код в совершенно другую папку, создать новый makefile и тому подобное. Это утомительно, и я думаю, что могли бы быть более простые, недоступные мне решения.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
Это launch.js
файл, я попытался заменить a.out
чем-то вроде Makefile
, поскольку это имело некоторый смысл (хорошо, что я думаю об этом, я связал код, ничего в исполняемом виде), но не сработало. Я даже попробовал исполняемый объект obj
(при запуске ./obj
), но ничего.
Спасибо.
Комментарии:
1.
a.out
это имя по умолчанию для цели сборки на некоторых платформах. Чтобы вернуть его обратно, перестройте свой проект.2. Вы имеете в виду просто
make
? Потому что я использовал это, и он все еще не мог его найти.3. Подождите, я только что кое-что сделал. В
"program": "${workspaceFolder}/a.out"
я заменилa.out
на, в моем конкретном случаеvector
который я использую для./vector
, и это сработало. Я думаю, что, возможно, я ввел неправильное имя раньше при первой попытке, потому что я переключал проекты, чтобы увидеть какую-либо разницу. Хотя по-прежнему нетa.out
при использовании makefile,vector
случайно заменил его?
Ответ №1:
a.out
это имя файла по умолчанию для скомпилированной программы. Используется, если вы не указываете имя выходного файла при запуске компилятора. Имя выходного файла обычно указывается с -o
параметром при запуске компилятора в командной строке.
Похоже, вы изменили некоторые настройки, так что скомпилированная программа теперь называется «vector» вместо «a.out». Поэтому просто измените настройки отладчика, чтобы использовать «vector» вместо «a.out».
Комментарии:
1. Да, похоже, что это так. Спасибо.