Отладка с параметрами командной строки в Visual Studio

429

Я разрабатываю приложение командной строки С++ в Visual Studio и вам нужно отлаживать его с помощью аргументов командной строки. На данный момент я просто запускаю сгенерированный EXE файл с необходимыми аргументами (например, этот program.exe -file.txt), но таким образом я не могу отлаживать. Я могу указать аргументы для отладки?

Теги:
visual-studio
debugging
command-line

9 ответов

638
Лучший ответ

Да, это в разделе "Отладка" страницы свойств проекта.

В VS с 2008 года: щелкните правой кнопкой мыши project, выберите properties, перейдите в раздел Debugging - есть поле для "Command Arguments". (Совет: не solution, но project)

  • 261
    Stackoverflow - единственная используемая документация MS!
  • 9
    Будьте осторожны с этим. Это не изменит фактический файл проекта, но вместо этого vcxproj.user-файл.
Показать ещё 8 комментариев
50

Здесь интересен FAQ Mozilla.org по отладке Mozilla в Windows.

Короче говоря, отладчик Visual Studio можно вызвать в программе из командной строки, позволяя указывать аргументы командной строки при вызове программы командной строки непосредственно в командной строке.

Это выглядит следующим образом для Visual Studio 8 или 9

 devenv /debugexe 'program name' 'program arguments'

Также возможно выполнить проводник, чтобы запустить программу в отладчике Visual Studio.

14

Даже если вы запустите исполняемый файл вне Visual Studio, вы все равно можете использовать команду "Прикрепить" для подключения Visual Studio к уже запущенному исполняемому файлу. Это может быть полезно, например, когда ваше приложение запускается как плагин в другом приложении.

  • 0
    Да, присоедините с помощью Ctrl+Alt+P (или нажмите «Отладка»> «Присоединить к процессу ...»). Но это на самом деле не отвечает на вопрос ОП;)
6

Microsoft Visual Studio Ultima 2013.

Вы можете просто перейти в меню DEBUG → Основные свойства → Свойства конфигурации → Отладка, а затем вы увидите поле для аргументов командной строки.

Собственно, вы можете установить одинаковые входные аргументы для всех разных конфигураций, а не только для отладки.

В выпадающем меню конфигурации выберите: Все конфигурации и вставьте входные аргументы (каждый аргумент разделен пробелом).

Теперь вы можете выполнять свою программу в разных режимах без необходимости изменять входные аргументы каждый раз.

  • 0
    Это вроде как работает и в MS VS 2015. Прежде чем перейти к «Debug-> {projectname} properties», мне пришлось открыть «Configuration Manager», доступный через выпадающий список, содержащий по умолчанию «Debug» и «Release». Появилось окно, где я смог добавить новые элементы «Конфигурация». Эти элементы доступны в свойствах «Debug -> {projectname}».
0

Это может помочь некоторым людям, у которых все еще есть проблемы. Я использую Visual Studio 2015, и я мог передавать аргументы только тогда, когда я изменил определение argv.

Вместо

int main(int argc, char **argv){
}

Мне пришлось использовать

int main(int argc, char *argv[]){
}

Я не знаю, почему это было необходимо, но оно работает.

0

В Visual Studio 2017 с консольным приложением .net выполните следующие действия:

Щелкните правой кнопкой мыши по проекту в окне "Решение", выберите "Свойства", затем "Отладка" (слева), введите аргументы в поле "Аргументы приложения".

Обратите внимание, что они должны быть разделены пробелом.

0

Щелкните правой кнопкой мыши по проекту в окне решения VS, выберите "Отладка" (с левой стороны), введите аргументы в поле "Аргументы команды":

Изображение 1204

0

В Visual Studio 2010 щелкните правой кнопкой мыши проект, выберите "Свойства", выберите раздел "Свойства конфигурации" на левой панели, затем нажмите "Отладка", затем в правой панели появится поле для аргументов команды.

В этом введите аргументы командной строки. Тебе хорошо идти. Теперь отлаживаем и видим результат. Если вы устали меняться в свойствах, то временно вводите вход непосредственно в программу.

-2

Я исправил его

  • Перейти к Свойствам проекта:
  • Вкладка "Безопасность"
  • Снимите флажок Enable ClickOnce Security Settings

Ещё вопросы

Сообщество Overcoder
Наверх
Меню