내 프로그램을 디버깅해야하는데 문제는이 프로그램이 몇 가지 매개 변수를 필요로한다는 것입니다. 어떻게 매개 변수를 취하는 프로그램을 디버그 할 수 있습니까 ?? 어떻게 든 런타임에 argc 및 argv 매개 변수를 수정할 수 있습니까 ??런타임에 argv 및 argc 매개 변수를 설정할 수있는 방법이 있습니까?
답변
가장 좋은 방법은 런타임에 인수를 수정하지 않고 원하는 인수가있는 인스턴스를 디버그하는 것입니다.
- 오른쪽 솔루션 탐색기에서 프로젝트를 클릭 다음과 같이 는 Windows의 당신은 Visual Studio에서이 작업을 수행 할 수 있습니다.
- 구성 등록 정보 -> 디버깅 -> 명령 인수에 원하는 인수를 설정하십시오.
- F5 키를 눌러 프로그램을 시작합니다 (중단하려는 중단 점을 설정 한 후).
또는 명령 줄에서 정상적으로 프로그램을 시작하고 나중에 디버거를 연결하십시오.
명령 줄에서 디버거를 호출하는 경우 명령 줄 인수를 추가하면 디버거가이를 프로그램에 전달할 수 있습니다.
IDE를 사용하는 경우 프로그램에 전달할 인수를 설정하는 방법이 있어야합니다 (예 : Visual Studio의 경우 프로젝트 속성의 "디버깅/명령 인수"에 있음).
그러나 디버그 세션에 있고 다양한 명령 줄 인수를 사용하여 디버깅하려면 프로젝트 속성을 지속적으로 편집해야한다는 것을 알게되었습니다. 따라서 argc
/argv
대신 직접 매개 변수를 사용하는 함수에서 내 argc
/argv
구문 분석을 수행하고 하드 코딩 된 명령 줄 문자열을 전달하는 디버깅 코드로 조건부로 컴파일해야합니다. IDE의 프로젝트 속성을 편집하는 것보다 소스 파일의 문자열을 수정하는 것이 더 쉽다는 것을 알 수 있습니다.) 또는 명령 줄 인수에 대한 디버깅 코드 프롬프트가 있습니다.
문자열을 argv
스타일 배열로 구문 분석하는 편리한 루틴을 가지고 있는데, 보통 argc
/argv
을 구문 분석하는 루틴으로 전달할 수 있습니다. 그것은 정확히 꽤 아니다
int main(int argc, char** argv)
{
if (debugging) {
char** dbg_argv;
int dbg_argc = argcargv(&dbg_argv, "dummyarg0 my debugging command --line");
parse_options(dbg_argc, dbg_argv);
}
else {
parse_options(argc, argv);
}
// etc...
}
,하지만 난 반복 프로젝트 속성 덤비는 것보다 더 편리하게 찾을 수 :
그래서 상황이 같을 수 있습니다.
나는이 아이디어가 마음에 들었습니다. –
좋은 방법, 많은 점을 배웠습니다. 감사합니다. –
당신은 GDB를 사용하는 경우 :
플랫폼 무엇gdb ./a.exe
> break main
> run arg1 arg2 arg3 etc..
- 1. 게시 매개 변수를 설정할 수있는 방법이 있습니까?
- 2. INT _tmain (INT는 argc, _TCHAR *는 argv [])
- 3. C#에서 런타임에 스택 변수를 검사 할 수있는 방법이 있습니까?
- 4. 매개 변수를 생략 할 수있는 방법이 있습니까?
- 5. argc/argv 설정 및 PHP CLI 스크립트 포함
- 6. Windows에서 재귀 환경 변수를 설정할 수있는 방법이 있습니까?
- 7. listview에서 선택한 항목을 설정할 수있는 방법이 있습니까?
- 8. 액션에 선택적 매개 변수를 보내는 방법이 있습니까?
- 9. ** argv 매개 변수의 최대 길이
- 10. Java에서 런타임에 제네릭 형식 매개 변수를 결정하십시오.
- 11. git 명령에 기본적으로 플래그를 설정할 수있는 방법이 있습니까?
- 12. 런타임에 StructLayout의 size 속성을 설정할 수 있습니까?
- 13. 자바 애플릿을 런타임에 다운로드 한 위치를 확인할 수있는 방법이 있습니까?
- 14. 콜백 함수를 전달할 때 매개 변수를 설정할 수 있습니까?
- 15. 어떻게 런타임에 테마를 설정할 수 있습니까?
- 16. 컨텍스트 변수를 설정할 수있는 장고 템플릿 태그가 있습니까?
- 17. 런타임에 Android 테마를 변경하는 방법이 있습니까?
- 18. 클래스의 속성을 설정할 때 메서드를 호출 할 수있는 방법이 있습니까?
- 19. Elmah에서 프로그래밍 방식으로 응용 프로그램 이름을 설정할 수있는 방법이 있습니까?
- 20. KeyBinding에 대해 여러 한정자를 설정할 수있는 방법이 있습니까?
- 21. 떠 다니는 요소에 CSS 최소 너비를 설정할 수있는 방법이 있습니까?
- 22. jquery ajax 호출을 대기열로 강제 설정할 수있는 방법이 있습니까?
- 23. 데이터베이스 또는 연결 문자열 수준에서 lock_timeout을 설정할 수있는 방법이 있습니까?
- 24. 라이브러리 함수에서 C++로 argc 및 argv에 액세스하는 방법
- 25. 유니 코드 "argv"를 사용할 수 있습니까?
- 26. C#에서 제네릭 형식 매개 변수를 연결하지 않아도되는 방법이 있습니까?
- 27. 목적-C 메인 루틴, 무엇을 : INT의는 argc, const를 숯불 * 변수는 argv []
- 28. 레일 - 전체 POST의 매개 변수를 캡처하는 방법이 있습니까?
- 29. Capistrano는 역할에 따라 변수를 설정할 수 있습니까?
- 30. 개미 작업 명령에 매개 변수를 전달하는 방법이 있습니까?
및 IDE/디버거를? –
짧은 대답은 가능합니다. 긴 답변은 Steve의 질문에 대한 답변을 한 후에 제공됩니다. –
Visual Studio의 경우 예 : http://stackoverflow.com/questions/298708/debugging-with-command-line-parameters-in-visual-studio –