Visual Studio에서 명령 줄 매개 변수를 사용하여 디버깅


513

Visual Studio에서 C ++ 명령 줄 응용 프로그램을 개발 중이며 명령 줄 인수로 디버깅해야합니다. 지금은 필요한 인수 (이와 같은 program.exe -file.txt)로 생성 된 EXE 파일을 실행 하지만 디버깅 할 수는 없습니다. 디버깅을위한 인수를 지정할 수있는 곳이 있습니까?


관련 게시물
RBT

답변:


754

예, 프로젝트 속성 페이지의 디버깅 섹션에 있습니다.

2008 년 이후 Visual Studio의 경우 : 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 디버깅 섹션으로 이동합니다 . "명령 인수"상자가 있습니다. (팁 : 솔루션이 아니라 프로젝트).


296
Stackoverflow는 유일하게 사용 가능한 MS 설명서입니다!
Martin Beckett

12
조심해 이것은 실제 프로젝트 파일이 아니라 vcxproj.user-file을 변경합니다.
TheTrowser

참고 : 솔루션에 다중 프로젝트가있는 경우 실행할 프로젝트를 마우스 오른쪽 단추로 클릭하고 "시작 프로젝트로 설정"을 기억하십시오.
사자 라이

1
에 딱 맞다. 그러나 VS2017에서는 분명히 "디버깅"이 아니라 "디버그"라고합니다. 우리는 이유를 모를 수도 있습니다.
OmarL

3
속성 페이지 상단의 드롭 다운에서 올바른 구성을 선택했는지 확인하십시오 (예 : 실행하려는 것과 동일한 구성).
Steve Smith

55

Windows에서 Mozilla 디버깅에 대한 Mozilla.org FAQ 가 여기에 있습니다.

간단히 말해서 명령 행에서 Visual Studio 디버거를 호출하여 명령 행 프로그램을 호출 할 때 명령 행에서 직접 명령 행 인수를 지정할 수 있습니다.

Visual Studio 8 또는 9의 경우 다음과 같습니다 (각각 Visual Studio 2005 또는 Visual Studio 2008).

  devenv / debugexe '프로그램 이름' '프로그램 인수'

Visual Studio 디버거에서 프로그램을 시작하기 위해 탐색기 작업수행 할 수도 있습니다 .


17

Visual Studio 외부에서 실행 파일을 시작하더라도 "첨부"명령을 사용하여 Visual Studio를 이미 실행중인 실행 파일에 연결할 수 있습니다. 예를 들어, 응용 프로그램이 다른 응용 프로그램 내에서 플러그인으로 실행될 때 유용 할 수 있습니다.


그래도 첨부하십시오 Ctrl+Alt+P(또는 "Debug"> "Attach to process ..."를 클릭하십시오). 그러나 이것은 실제로 OP 질문에 대답하지 않습니다.)
T_D

7

Microsoft Visual Studio Ultima 2013.

디버그 메뉴 → 기본 속성구성 속성디버깅 으로 이동하면 명령 줄 인수 상자가 표시됩니다.

실제로 디버깅뿐만 아니라 모든 다른 구성에 대해 동일한 입력 인수를 설정할 수 있습니다.

구성 풀다운 메뉴에서 모든 구성을 선택하고 입력 인수 (공백으로 구분 된 각 인수)를 삽입하십시오.

이제 매번 입력 인수를 변경하지 않고도 다른 모드에서 프로그램을 실행할 수 있습니다.


MS VS 2015에서도 이와 같이 작동합니다. "Debug-> {projectname} properties"로 가기 전에 기본적으로 "Debug"및 "Release"가 포함 된 드롭 다운을 통해 액세스 할 수있는 "Configuration Manager"를 열어야했습니다. 새로운 "구성"항목을 추가 할 수있는 창이 나타납니다. 이러한 항목은 "디버그-> {projectname} 속성"에서 사용할 수 있습니다.
AMartinNo1

2

이것은 여전히 ​​문제가있는 사람들에게 도움이 될 수 있습니다. Visual Studio 2015를 사용하고의 정의를 변경 한 경우에만 인수를 전달할 수있었습니다 argv.

대신에

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

나는 사용해야했다

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

왜 필요한지 모르겠지만 작동합니다.


이게 뭐야? C ++ 네이티브? C ++ 관리 (.NET)?
Peter Mortensen

같은 문제가 있었지만 위에서 언급 한 두 가지 선언 모두 작동하지 않았습니다. 64 비트 컴퓨터에서 작업하고 있으므로 솔루션을 플랫폼을 x86에서 x64로 변경했습니다.
hfrmobile

2

.NET Core 콘솔 응용 프로그램이있는 Visual Studio 2017 에서 다음을 수행하십시오.

솔루션 창 에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 "속성", 디버그 (왼쪽)를 선택하고 "응용 프로그램 인수" 필드에 인수를 입력하십시오 .

공백으로 구분해야합니다.


1

Visual Studio 2010에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택 하고 왼쪽 창에서 구성 속성 섹션을 클릭 한 다음 디버깅 을 클릭 하고 오른쪽 창에 명령 인수 상자가 있습니다.

여기에 명령 행 인수를 입력하십시오. 잘 가세요 이제 디버그하고 결과를보십시오. 속성을 변경하는 데 지치면 프로그램에 직접 입력하십시오.


1

Visual Studio 의 솔루션 창 에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 "Debugging" (왼쪽)을 선택한 다음 "Command Arguments" 필드에 인수를 입력하십시오 .

여기에 이미지 설명을 입력하십시오


1

VS 2015 이상에서는 Smart Command Line Arguments 확장을 사용하십시오 . 이 플러그인은 인수를 켜거나 끌 수있는 창을 추가합니다.

스마트 커맨드 라인 인수 인터페이스

확장은 또한 인수를 JSON 파일에 저장하여 소스 제어에 커밋 할 수 있도록합니다. 매번 모든 인수를 입력하지 않아도되는 것 외에도 다른 개발자가 사용 가능한 옵션을 발견 할 수 있도록 문서를 보완하는 유용한 기능을 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.