Отладка без a.out в VSC

#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. Да, похоже, что это так. Спасибо.