레이블이 Tool인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Tool인 게시물을 표시합니다. 모든 게시물 표시

2010년 9월 6일 월요일

InstallScript 문법

어떤 프로그램이던지 (스크립트, VB,C/C++등등) 조금이라도 해보신분은 금방 아하~ 하고 아실테지만 아니신 분들은..이게뭐지..싶을지도 모르겠습니다.
 
 
사용자 함수 추가
 
스크립트에 함수를 추가 하기 위해서는 prototype을 정의 하고
function body를 작성합니다.
 
//프로토 타입 정의
protype GetPathParts(STRING, BYREF STRING, BYREF STRING, BYREF STRING);
 
//function block 작성
function GetPathParts(szFullPath, svDrv, svPath, svName)
    LONG lResult;   //사용할 변수를 정의 합니다.
begin // 함수의 실제 내용 시작
    lResult = ParsePath(svDrv, szFullPath, DISK);
    if (lResult = 0) then
        lResult = ParsePath(svPath, szFullPath, DIRECTORY);
    endif;
    if (lResult = 0) then
        lResult = ParsePath(svName, szFullPath, FILENAME);
    endif;
    return lResult; 
end; //함수의 끝
 
리턴값은 주로 함수의 에러값을 리턴하며, 숫자값이 아니거나 여러개일경우 함수에 넘겨주는 변수 값을 BYREF 를 이용해서 정의 합니다.(
 
즉 기본적으로 인스톨쉴드는 By Value방식으로 값을 전달 합니다
////////////////////////////////////////////////////////////////////////
 
정의방법
// Constant definitions
#define PRODUCT "InstallShield"
#define LIMIT    100
// Variable declarations
CHAR  cVal;
NUMBER nVal;
STRING szName;
   
// Function declarations
prototype DisplayMsg (NUMBER, STRING);
prototype GetName (BYREF STRING);
 
////////////////////////////////////////////////////////////////////////
 
Data Type
 
여러가지 데이타 타입이 있는데 세가지만 설명합니다.
 
숫자 데이타는 NUMBER
문자데이터는 STRING
리스트데이터는 LIST
 
가장 많이 쓰는 데이타 타입입니다. 나머지 타입은 Help를 참조해주시기 바랍니다.
 
 
//////////////////////////////////////////////////////////////////////
기타 많이 쓰는 문법구문(예제는 Help에서 가져왔습니다.)
 
IF문
if (condition) then
    // statements to be executed if condition is true
endif;
 
FOR문
for iCount = 1 to 10
        MessageBox ("This appears ten times.", INFORMATION);
    endfor;
for iCount = 10 to 100 step 10
        MessageBox ("This appears ten times.", INFORMATION);
    endfor;
 
WHILE문
nCount = 1;
    while (nCount < 5)
        MessageBox ("This is still true.", INFORMATION);
        nCount = nCount + 1;
    endwhile;
 
SWITCH문
STRING szMsg, svResult;
    NUMBER nvResult;
    GetSystemInfo (VIDEO, nvResult, svResult);
   
    switch (nvResult)
        case IS_UNKNOWN:
            szMsg = "The user's video is unknown.";
        case IS_EGA:
            szMsg = "EGA resolution.";
        case IS_VGA:
            szMsg = "VGA resolution.";
        case IS_SVGA:
            szMsg = "Super VGA (800 x 600) resolution.";
        case IS_XVGA:
            szMsg = "XVGA (1024 x 768) resolution.";
        case IS_UVGA:
            szMsg = "Greater than 1024 x 768 resolution.";
        default:
            szMsg = "Error";
    endswitch;
    MessageBox (szMsg, INFORMATION);

2010년 7월 30일 금요일

Visual Studio 2003 단축키

일반 바로 가기 키

다음 바로 가기 키 조합은 IDE(통합 개발 환경) 내의 여러 위치에서 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
편집.복사 Ctrl+C
Ctrl+Ins
현재 선택한 항목을 시스템 클립보드에 복사합니다.
편집.잘라내기 Ctrl+X
Shift+Del
현재 선택한 항목을 시스템 클립보드로 잘라냅니다.
편집.클립보드링순환 Ctrl+Shift+Ins
Ctrl+Shift+V
도구 상자클립보드 링 탭에 있는 항목을 파일의 삽입 포인트에 붙여 넣고, 붙여 넣은 항목을 자동으로 선택합니다. 바로 가기 키를 반복해서 누르면 클립보드에 있는 각 항목을 검토할 수 있습니다.
편집.다음위치로이동 F8 커서를 다음 항목(예: 작업 목록 창에 있는 작업이나 찾기 결과 창에 있는 검색 결과 항목)으로 이동합니다. F8 키를 누를 때마다 목록의 다음 항목으로 이동합니다.
편집.이전위치로이동 Shift+F8 작업 목록 창이나 찾기 결과 창의 이전 항목으로 커서를 이동합니다.
편집.참조로이동 Shift+F12 코드에서 선택한 기호의 참조를 표시합니다.
편집.파일열기 Ctrl+Shift+G 기존 파일을 열 수 있는 파일 열기 대화 상자를 표시합니다.
편집.붙여넣기 Ctrl+V
Shift+Ins
클립보드 내용을 삽입 포인트에 삽입합니다.
편집.다시실행 Ctrl+Shift+Z
Ctrl+Y
Shift+Alt+백스페이스
이전에 실행 취소된 작업을 복원합니다.
편집.선택취소 Esc 메뉴 또는 대화 상자를 닫거나, 진행 중인 작업을 취소하거나, 현재 문서 창에 포커스를 둡니다. .NET Framework 디자이너에서만 사용할 수 있습니다.
편집.실행취소 Alt+백스페이스
Ctrl+Z
마지막 편집 작업을 취소합니다.
파일.인쇄 Ctrl+P 프린터 설정을 변경할 수 있는 인쇄 대화 상자를 표시합니다.
파일.모두저장 Ctrl+Shift+S 현재 솔루션의 모든 문서 및 외부 파일 프로젝트의 모든 파일을 저장합니다.
파일.선택한항목저장 Ctrl+S 현재 프로젝트의 선택 항목을 저장합니다.
도구.명령줄로이동 Ctrl+/ 캐럿을 표준 도구 모음의 찾기/명령 상자에 놓습니다.
보기.다음작업 Ctrl+Shift+F12 작업 목록 창의 다음 작업으로 이동합니다.
보기.찾아보기컨텍스트표시 Ctrl+Shift+8 찾아보기 동작이 마지막으로 수행된 위치로 되돌아갑니다. 개체 브라우저 또는 클래스 창에서 사용할 수 있습니다.
보기.코드보기 F7 선택한 항목을 편집기의 코드 뷰에 표시합니다.
보기.디자이너보기 Shift+F7 선택한 항목을 편집기의 디자인 뷰에 표시합니다.
보기.웹뒤로탐색 Alt+왼쪽 화살표 보고 있는 기록의 이전 페이지를 표시합니다. 웹 브라우저 창에서만 사용할 수 있습니다.
보기.웹앞으로탐색 Alt+오른쪽 화살표 보고 있는 기록의 다음 페이지를 표시합니다. 웹 브라우저 창에서만 사용할 수 있습니다.

HTML 디자이너 바로 가기 키

다음 바로 가기 키 조합은 HTML 디자이너에서 편집할 때만 사용할 수 있습니다. 일부 키 조합은 해당 디자이너의 특정 뷰에서만 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
편집.멤버목록 Ctrl+J 코드 편집 시 문 완성을 위해 현재 클래스의 멤버를 나열합니다. HTML 디자이너의 HTML 뷰에서만 사용할 수 있습니다.
편집.매개변수정보 Ctrl+Shift+스페이스바 현재 언어에 따라 현재 매개 변수에 대한 설명이 포함된 도구 설명을 표시합니다. HTML 편집기HTML 뷰에서만 사용할 수 있습니다.
편집.뷰맨아래로 Ctrl+Page Down 현재 문서의 맨 아래로 이동합니다. HTML 디자이너의 HTML 뷰에서만 사용할 수 있습니다.
편집.뷰맨위로 Ctrl+Page Up(다른 이름으로 파일 저장) 현재 창의 맨 위로 이동합니다. HTML 디자이너의 HTML 뷰에서만 사용할 수 있습니다.
서식.굵게 Ctrl+B 선택한 텍스트를 굵은 글꼴로 표시하거나 보통 글꼴로 표시합니다. HTML 디자이너디자인 뷰에서만 사용할 수 있습니다.
서식.책갈피 Ctrl+Shift+L 즐겨찾기 대화 상자를 표시합니다. HTML 디자이너의 디자인 뷰에서만 사용할 수 있습니다.
서식.하이퍼링크로변환 Ctrl+L 텍스트가 선택되어 있으면 하이퍼링크 대화 상자를 표시합니다. HTML 디자이너의 디자인 뷰에서만 사용할 수 있습니다.
서식.내어쓰기 Ctrl+Shift+T 선택한 단락을 내어쓰기 한 단위 씩 내어씁니다. HTML 디자이너디자인 뷰에서만 사용할 수 있습니다.
서식.들여쓰기 Ctrl+T 선택한 단락을 들여쓰기 단위 하나씩 들여씁니다. HTML 디자이너디자인 뷰에서만 사용할 수 있습니다.
서식.기울임꼴 Ctrl+I 선택한 텍스트를 기울임꼴로 표시하거나 보통 글꼴로 표시합니다. HTML 디자이너디자인 뷰에서만 사용할 수 있습니다.
서식.요소잠그기 Ctrl+Shift+K 절대 위치로 배치된 요소가 실수로 옮겨지지 않도록 합니다. HTML 디자이너디자인 뷰에서만 사용할 수 있습니다.
서식.모눈표시 Ctrl+G 모눈 표시를 전환합니다. HTML 디자이너의 디자인 뷰에서만 사용할 수 있습니다.
서식.모눈에맞춤 Ctrl+Shift+G 보이지 않는 모눈을 사용하여 요소를 맞추도록 지정합니다. 옵션 대화 상자에 있는 HTML 디자이너 옵션의 디자인 창에서 모눈 간격을 설정할 수 있으며, 다음에 문서를 열 때 모눈이 변경됩니다. HTML 디자이너의 디자인 뷰에서만 사용할 수 있습니다.
서식.밑줄 Ctrl+U 선택한 텍스트를 밑줄로 표시하거나 보통 글꼴로 표시합니다. HTML 디자이너디자인 뷰에서만 사용할 수 있습니다.
테이블.왼쪽에열삽입 Ctrl+Alt+왼쪽 화살표 테이블의 현재 열 왼쪽에 열을 하나 추가합니다. HTML 디자이너의 디자인 뷰에서만 사용할 수 있습니다.
테이블.오른쪽에열삽입 Ctrl+Alt+오른쪽 화살표 테이블의 현재 열 오른쪽에 열을 하나 추가합니다. HTML 디자이너의 디자인 뷰에서만 사용할 수 있습니다.
테이블.위에행삽입 Ctrl+Alt+위쪽 화살표 테이블의 현재 행 위에 행을 하나 추가합니다. HTML 디자이너의 디자인 뷰에서만 사용할 수 있습니다.
테이블.아래에행삽입 Ctrl+Alt+아래쪽 화살표 테이블의 현재 행 아래에 행을 하나 추가합니다. HTML 디자이너의 디자인 뷰에서만 사용할 수 있습니다.
보기.자세히 Ctrl+Shift+Q 주석, 스크립트 및 절대 위치로 배치된 요소의 앵커와 같이 눈에 보이는 표시가 없는 HTML 요소의 신호 아이콘을 표시합니다. HTML 디자이너의 디자인 뷰에서만 사용할 수 있습니다.
보기.다음뷰 Ctrl+Page Down 디자인 뷰에서 HTML 뷰로, 또는 그 반대로 전환합니다. HTML 디자이너디자인 뷰에서만 사용할 수 있습니다.
보기.테두리표시 Ctrl+Q 테이블, 테이블 셀, 분할선과 같이 BORDER 특성을 지원하며 해당 특성이 0으로 설정된 HTML 요소의 주위에 1픽셀짜리 테두리를 표시합니다. HTML 디자이너의 디자인 뷰에서만 사용할 수 있습니다.

XML 디자이너 바로 가기 키

명령 이름 바로 가기 키 설명
스키마.축소 Ctrl+(-) 중첩 요소를 축소합니다. XML 디자이너의 스키마 뷰에서만 사용할 수 있습니다.
스키마.확장 Ctrl+(=) 중첩 요소를 확장합니다. XML 디자이너의 스키마 뷰에서만 사용할 수 있습니다.

컨트롤 조작 바로 가기 키

다음 바로 가기 키 조합은 디자인 화면에서 컨트롤을 이동하거나, 선택하거나, 크기를 변경할 때 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
편집.컨트롤아래로이동 Ctrl+아래쪽 화살표 디자인 화면에서 선택한 컨트롤을 1단위씩 아래로 이동합니다.
편집.모눈아래로컨트롤이동 아래쪽 화살표 디자인 화면에서 선택한 컨트롤을 8단위씩 아래로 이동합니다.
편집.컨트롤왼쪽으로이동 Ctrl+왼쪽 화살표 디자인 화면에서 컨트롤을 1단위씩 왼쪽으로 이동합니다.
편집.모눈왼쪽으로컨트롤이동 왼쪽 화살표 디자인 화면에서 컨트롤을 8단위씩 왼쪽으로 이동합니다.
편집.컨트롤오른쪽으로이동 Ctrl+오른쪽 화살표 디자인 화면에서 컨트롤을 1단위씩 오른쪽으로 이동합니다.
편집.모눈오른쪽으로컨트롤이동 오른쪽 화살표 디자인 화면에서 컨트롤을 8단위씩 오른쪽으로 이동합니다.
편집.컨트롤위로이동 Ctrl+위쪽 화살표 디자인 화면에서 선택한 컨트롤을 1단위씩 위로 이동합니다.
편집.모눈위로컨트롤이동 위쪽 화살표 디자인 화면에서 선택한 컨트롤을 8단위씩 위로 이동합니다.
편집.다음컨트롤선택 Tab 페이지의 다음 컨트롤로 이동합니다.
편집.이전컨트롤선택 Shift+Tab 페이지에서 이전에 선택한 컨트롤로 다시 이동합니다.
편집.아래로컨트롤크기조정 Ctrl+Shift+아래쪽 화살표 디자인 화면에서 컨트롤의 높이를 1단위씩 높입니다.
편집.모눈아래로컨트롤크기조정 Shift+아래쪽 화살표 디자인 화면에서 컨트롤의 높이를 8단위씩 높입니다.
편집.왼쪽으로컨트롤크기조정 Ctrl+Shift+왼쪽 화살표 디자인 화면에서 컨트롤의 너비를 1단위씩 줄입니다.
편집.모눈왼쪽으로컨트롤크기조정 Shift+왼쪽 화살표 디자인 화면에서 컨트롤의 너비를 8단위씩 줄입니다.
편집.오른쪽으로컨트롤크기조정 Ctrl+Shift+오른쪽 화살표 디자인 화면에서 컨트롤의 너비를 1단위씩 늘립니다.
편집.모눈오른쪽으로컨트롤크기조정 Shift+왼쪽 화살표 디자인 화면에서 컨트롤의 너비를 8단위씩 늘립니다.
편집.위로컨트롤크기조정 Ctrl+Shift+위쪽 화살표 디자인 화면에서 컨트롤의 높이를 1단위씩 줄입니다.
편집.모눈위로컨트롤크기조정 Shift+왼쪽 화살표 디자인 화면에서 컨트롤의 높이를 8단위씩 줄입니다.

디버그 바로 가기 키

다음 바로 가기 키 조합은 코드를 디버깅할 때 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
디버그.코드변경내용적용 Alt+F10 편집하며 계속하기를 시작하여 디버그 중인 코드에 변경 내용을 적용합니다.
디버그.자동 Ctrl+Alt+V, A 현재 프로시저에서 현재 실행되는 줄의 범위에 현재 포함된 변수의 값을 볼 수 있는 자동 창을 표시합니다.
디버그.모두중단 Ctrl+Alt+ Break 디버깅 세션의 모든 프로세스 실행을 일시 중지합니다. 실행 모드에서만 사용할 수 있습니다.
디버그.중단점 Ctrl+Alt+B 중단점을 추가하고 수정할 수 있는 중단점 대화 상자를 표시합니다.
디버그.호출스택 Ctrl+Alt+C 활성화된 모든 프로시저 목록이나 현재 실행 스레드에 대한 스택 프레임을 표시하는 호출 스택 창을 표시합니다. 실행 모드에서만 사용할 수 있습니다.
디버그.모든중단점지우기 Ctrl+Shift+F9 프로젝트의 모든 중단점을 지웁니다.
디버그.디스어셈블리 Ctrl+Alt+D 디스어셈블리 창을 표시합니다.
디버그.중단점설정 Ctrl+F9 현재 코드 줄에 중단점을 설정합니다.
디버그.예외 Ctrl+Alt+E 예외 대화 상자를 표시합니다.
디버그.직접실행 Ctrl+Alt+I 식을 계산하고 개별 명령을 실행할 수 있는 직접 실행 창을 표시합니다.
디버그.지역 Ctrl+Alt+V, L 현재 스택 프레임의 각 프로시저에 대한 변수 및 각 변수의 값을 볼 수 있는 지역 창을 표시합니다.
디버그.메모리1 Ctrl+Alt+M, 1 조사식 창 또는 변수 창에서는 잘 표시되지 않는 큰 버퍼, 문자열, 또는 기타 데이터를 볼 수 있는 메모리1 창을 표시합니다.
디버그.메모리2 Ctrl+Alt+M, 2 조사식 또는 변수 창에 제대로 표시되지 않는 큰 버퍼, 문자열 및 기타 데이터를 볼 수 있는 메모리 2 창을 표시합니다.
디버그.메모리3 Ctrl+Alt+M, 3 조사식 또는 변수 창에 제대로 표시되지 않는 큰 버퍼, 문자열 및 기타 데이터를 볼 수 있는 메모리 3 창을 표시합니다.
디버그.메모리4 Ctrl+Alt+M, 4 조사식 또는 변수 창에 제대로 표시되지 않는 큰 버퍼, 문자열 및 기타 데이터를 볼 수 있는 메모리 4 창을 표시합니다.
디버그.모듈 Ctrl+Alt+U 프로그램에서 사용하는 .dll 또는 .exe 파일을 볼 수 있는 모듈 창을 표시합니다. 다중 프로세스 디버깅에서 마우스 오른쪽 단추로 클릭하여 모든 프로그램에 대해 모듈 표시를 선택할 수 있습니다.
디버그.새중단점 Ctrl+B 현재 코드 줄에서 중단점을 하나 삽입하거나 삭제합니다.
디버그.간략한조사식 Ctrl+Alt+Q 선택한 식의 현재 값이 포함된 간략한 조사식 대화 상자를 표시합니다. 중단 모드에서만 사용할 수 있습니다. 조사식을 아직 정의하지 않은 변수, 속성 또는 기타 식의 현재 값을 확인하려면 이 명령을 사용합니다.
디버그.레지스터 Ctrl+Alt+G 네이티브 코드 응용 프로그램을 디버깅하기 위한 레지스터 내용을 표시하는 레지스터 창을 표시합니다.
디버그.다시시작 Ctrl+Shift+F5 디버깅 세션을 종료하고 다시 빌드한 다음 처음부터 다시 응용 프로그램 실행을 시작합니다. 중단 및 실행 모드에서 사용할 수 있습니다.
디버그.실행중인문서 Ctrl+Alt+N 현재 디버깅 프로세스에 있는 문서들을 표시하는 실행 중인 문서 창을 표시합니다. 실행 모드에서 사용할 수 있습니다.
디버그.커서까지실행 Ctrl+F10 중단 모드에서는 현재 문부터 선택한 문까지 코드 실행을 다시 시작합니다. 현재 실행 중인 줄의 여백 표시기가 여백 표시줄에 나타납니다.
디자인 모드에서는 디버거를 시작하고 커서 위치까지 코드를 실행합니다.
디버그.다음문설정 Ctrl+Shift+F10 선택한 코드 줄을 실행 지점으로 설정합니다.
디버그.다음문표시 Alt+Num * 다음에 실행할 문을 강조 표시합니다.
디버그.시작 F5 자동으로 디버거에 연결하고 <Project> 속성 대화 상자에 지정된 시작 폼에서 응용 프로그램을 실행합니다. 중단 모드에서는 계속으로 바뀝니다.
디버그.디버깅하지않고시작 Ctrl+F5 디버거를 호출하지 않고 코드를 실행합니다.
디버그.한단계씩코드실행 F11 한 번에 하나씩 코드를 실행한 다음 함수 호출을 실행합니다.
디버그.프로시저나가기 Shift+F11 현재 실행 지점에서 함수의 나머지 줄을 실행합니다.
디버그.프로시저단위실행 F10 다음 코드 줄을 실행하지만 함수 호출을 통한 실행은 제외됩니다.
디버그.디버깅중지 Shift+F5 프로그램에서 현재 응용 프로그램의 실행을 중단합니다. 중단 및 실행 모드에서 사용할 수 있습니다.
디버그.This Ctrl+Alt+V, T 현재 메서드와 연결된 개체의 데이터 멤버를 볼 수 있는 이 창을 표시합니다.
디버그.스레드 Ctrl+Alt+H 현재 프로세스의 모든 스레드와 해당 스레드에 대한 정보를 볼 수 있는 스레드 창을 표시합니다.
디버그.중단점설정해제 F9 현재 줄에 중단점을 설정하거나 제거합니다.
디버그.디스어셈블리설정해제 Ctrl+F11 현재 소스 파일의 디스어셈블리 정보를 표시합니다. 중단 모드에서만 사용할 수 있습니다.
디버그.조사식1 Ctrl+Alt+W, 1 선택한 변수 또는 조사식의 값을 볼 수 있는 조사식 1 창을 표시합니다.
디버그.조사식2 Ctrl+Alt+W, 2 선택한 변수 또는 조사식의 값을 볼 수 있는 조사식 2 창을 표시합니다.
디버그.조사식3 Ctrl+Alt+W, 3 선택한 변수 또는 조사식의 값을 볼 수 있는 조사식 3 창을 표시합니다.
디버그.조사식4 Ctrl+Alt+W, 4 선택한 변수 또는 조사식의 값을 볼 수 있는 조사식 4 창을 표시합니다.
도구.프로세스디버그 Ctrl+Alt+P 한 솔루션에서 여러 프로그램을 디버깅할 수 있는 프로세스 대화 상자를 표시합니다.

찾기 및 바꾸기 바로 가기 키

다음 바로 가기 키 조합은 찾기, 바꾸기, 파일에서 찾기, 파일에서 바꾸기 대화 상자에서 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
편집.찾기 Ctrl+F 찾기 대화 상자를 표시합니다.
편집.파일에서찾기 Ctrl+Shift+F 파일에서 찾기 대화 상자를 표시합니다.
편집.다음찾기 F3 이전에 검색한 텍스트를 계속 찾습니다.
편집.다음찾기선택 Ctrl+F3 문서에서 현재 선택한 텍스트를 계속 찾습니다.
편집.이전찾기 Shift+F3 검색 텍스트를 뒤로 찾습니다.
편집.이전찾기선택 Ctrl+Shift+F3 현재 선택한 텍스트 또는 캐럿의 단어를 뒤로 찾습니다.
편집.찾기콤보상자로이동 Ctrl+D 캐럿을 표준 도구 모음의 찾기/명령 줄에 놓습니다.
편집.숨겨진텍스트 Alt+F3, H 찾기 대화 상자의 숨겨진 텍스트 검색 옵션을 선택하거나 선택 취소합니다.
편집.증분검색 Ctrl+I 증분 검색을 시작합니다. 증분 검색이 시작되었지만 아직 아무 문자도 입력하지 않은 경우에는 이전 패턴을 다시 호출합니다. 텍스트를 찾으면 다음 항목을 검색합니다.
편집.대소문자구분 Alt+F3, C. 찾기 및 바꾸기 작업에 대해 대/소문자 구분 옵션을 선택하거나 선택 취소합니다.
편집.정규식 Alt+F3, R 찾기 및 바꾸기 작업에 특수 문자를 사용할 수 있는 정규식 옵션을 선택하거나 선택 취소합니다.
편집.바꾸기 Ctrl+H 바꾸기 대화 상자를 표시합니다.
편집.파일에서바꾸기 Ctrl+Shift+H 파일에서 바꾸기 대화 상자를 표시합니다.
편집.역방향증분검색 Ctrl+Shift+I 파일 맨 아래에서 시작하여 위로 검색하도록 증분 검색의 방향을 변경합니다.
편집.검색중지 Alt+F3, S 현재 파일에서 찾기 작업을 중단합니다.
편집.위로 Alt+F3, B 찾기 및 바꾸기 작업에 대해 Search Up 옵션을 선택하거나 선택 취소합니다.
편집.단어단위로 Alt+F3, W 찾기 및 바꾸기 작업에 대해 단어 단위로 옵션을 선택하거나 선택 취소합니다.
편집.와일드카드 Alt+F3, P 찾기 및 바꾸기 작업에 대해 와일드카드 옵션을 선택하거나 선택 취소합니다.

Visual Database Tools 바로 가기 키

다음 바로 가기 키 조합은 데이터베이스 디자이너나 쿼리 디자이너에서 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
데이터베이스.실행 Ctrl+D 현재 활성화된 데이터베이스 개체를 실행합니다.
데이터베이스.선택영역실행 Ctrl+Q SQL 편집기에서 현재 선택된 영역을 실행합니다.
데이터베이스.한단계씩코드실행 Alt+F5 현재 활성화된 데이터베이스 개체에 대해 한 단계씩 실행하여 디버그 모드로 들어갑니다.
쿼리.실행 Ctrl+R 쿼리를 실행합니다. 쿼리 디자이너에서만 사용할 수 있습니다.
보기.다이어그램 Ctrl+1 쿼리 디자이너의 다이어그램 창을 표시합니다. 쿼리 디자이너에서만 사용할 수 있습니다.
보기.모눈 Ctrl+2 쿼리 디자이너의 Grid 창을 표시합니다. 쿼리 디자이너에서만 사용할 수 있습니다.
보기.결과 Ctrl +4 쿼리 디자이너의 결과 창을 표시합니다. 쿼리 디자이너에서만 사용할 수 있습니다.
보기.SQL Ctrl +3 쿼리 디자이너의 SQL 창을 표시합니다. 쿼리 디자이너에서만 사용할 수 있습니다.

텍스트 탐색 바로 가기 키

다음 바로 가기 키 조합은 텍스트 편집기에서 열려 있는 문서 내부를 이동할 때 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
편집.왼쪽문자로 왼쪽 화살표 커서를 왼쪽으로 한 문자 이동합니다. .NET Framework 디자이너에서만 사용할 수 있습니다.
편집.오른쪽문자로 오른쪽 화살표 커서를 오른쪽으로 한 문자 이동합니다. .NET Framework 디자이너에서만 사용할 수 있습니다.
편집.문서끝으로 Ctrl+End 삽입 포인트를 문서의 마지막 줄로 이동합니다.
편집.문서시작으로 Ctrl+Home 삽입 포인트를 문서의 첫 줄로 이동합니다.
편집.이동 Ctrl+G 줄 이동 대화 상자를 표시합니다.
편집.중괄호로이동 Ctrl+] 삽입 포인트를 다음 중괄호로 옮깁니다.
편집.줄아래로 아래쪽 화살표 커서를 한 줄 아래로 이동합니다.
편집.줄끝으로 End 커서를 현재 줄의 끝으로 이동합니다.
편집.줄시작으로 Home 커서를 줄의 처음으로 이동합니다.
편집.줄위로 위쪽 화살표 커서를 한 줄 위로 이동합니다.
편집.다음책갈피 Ctrl+K, Ctrl+N 문서의 다음 책갈피로 이동합니다.
편집.페이지아래로 Page Down 편집기 창에서 한 화면 아래로 스크롤합니다.
편집.페이지위로 Page Up 편집기 창에서 한 화면 위로 스크롤합니다.
편집.이전책갈피 Ctrl+K, Ctrl+P 이전 책갈피로 이동합니다.
편집.요약정보 Ctrl+K, Ctrl+I 현재 언어에 따라 요약 정보를 표시합니다.
편집.아래로줄스크롤 Ctrl+아래쪽 화살표 한 줄 아래의 텍스트로 스크롤합니다. 텍스트 편집기에서만 사용할 수 있습니다.
편집.위로줄스크롤 Ctrl+위쪽 화살표 한 줄 위의 텍스트로 스크롤합니다. 텍스트 편집기에서만 사용할 수 있습니다.
편집.다음단어로 Ctrl+오른쪽 화살표 삽입 포인트를 한 단어 오른쪽으로 이동합니다.
편집.이전단어로 Ctrl+왼쪽 화살표 삽입 포인트를 한 단어 왼쪽으로 이동합니다.
보기.다음찾아보기 Ctrl+Shift+1 다음 정의, 선언 또는 항목 참조를 탐색합니다. 개체 브라우저 및 클래스 뷰 창에서 사용할 수 있습니다.
보기.이전찾아보기 Ctrl+Shift+2 이전 정의, 선언 또는 항목 참조를 탐색합니다. 개체 브라우저 및 클래스 뷰 창에서 사용할 수 있습니다.

텍스트 선택 바로 가기 키

다음 바로 가기 키 조합은 텍스트 편집기에서 열려 있는 문서의 텍스트를 선택할 때 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
편집.왼쪽문자까지선택 Shift+왼쪽 화살표 커서를 왼쪽으로 한 문자 이동하여 선택 영역을 확장합니다. .NET Framework 디자이너에서만 사용할 수 있습니다.
편집.왼쪽문자까지열확장선택 Shift+Alt+왼쪽 화살표 커서를 왼쪽으로 한 문자 이동하여 열 선택 영역을 확장합니다.
편집.오른쪽문자까지선택 Shift+오른쪽 화살표 커서를 오른쪽으로 한 문자 이동하여 선택 영역을 확장합니다. .NET Framework 디자이너에서만 사용할 수 있습니다.
편집.오른쪽문자까지열확장선택 Shift+Alt+오른쪽 화살표 커서를 오른쪽으로 한 문자 이동하여 열 선택 영역을 확장합니다.
편집.문서끝까지선택 Ctrl+Shift+End 삽입 포인트부터 문서의 마지막 줄까지 텍스트를 선택합니다.
편집.문서시작까지선택 Ctrl+Shift+Home 삽입 포인트부터 문서의 첫 줄까지 텍스트를 선택합니다.
편집.중괄호로이동확장 Ctrl+Shift+] 삽입 포인트를 다음 중괄호로 이동하여 선택을 확장합니다.
편집.한줄아래까지선택 Shift+아래쪽 화살표 텍스트 선택 영역을 삽입 포인트가 있는 위치부터 시작해서 한 줄 아래로 확장합니다.
편집.한줄아래까지열확장선택 Shift+Alt+아래쪽 화살표 커서를 한 줄 아래로 이동해서 열 선택을 확장합니다.
편집.줄끝까지선택 Shift+End 삽입 포인트부터 현재 줄의 끝까지 텍스트를 선택합니다.
편집.줄끝까지열확장선택 Shift+Alt+End 삽입 포인트를 줄 끝으로 옮겨서 열 선택을 확장합니다.
편집.줄시작까지선택 Shift+Home 삽입 포인트부터 줄의 시작까지 텍스트를 선택합니다.
편집.줄시작까지열확장선택 Shift+Alt+Home 삽입 포인트를 줄의 처음으로 옮겨서 열 선택을 확장합니다.
편집.한줄위까지선택 Shift+위쪽 화살표 삽입 포인트 위치에서 시작하여 한 줄씩 위로 텍스트를 선택합니다.
편집.한줄위까지열확장선택 Shift+Alt+위쪽 화살표 커서를 한 줄 위로 이동해서 열 선택을 확장합니다.
편집.한페이지아래까지선택 Shift+Page Down 한 페이지 아래로 선택 영역을 확장합니다.
편집.한페이지위까지선택 Shift+Page Up 한 페이지 아래로 선택 영역을 확장합니다.
편집.모두선택 Ctrl+A 현재 문서의 모든 내용을 선택합니다.
편집.현재단어선택 Ctrl+W 삽입 포인트가 포함된 단어나 삽입 포인트의 오른쪽에 있는 단어를 선택합니다.
편집.이전위치까지선택 Ctrl+= 편집기의 현재 위치에서 편집기의 이전 위치까지 선택합니다.
편집.뷰맨아래까지선택 Ctrl+Shift+Page Down 커서를 뷰의 마지막 줄로 옮겨서 선택을 확장합니다.
편집.뷰맨위까지선택 Ctrl+Shift+Page Up 선택 영역을 현재 창의 맨 위로 확장합니다.
편집.다음단어까지선택 Ctrl+Shift+오른쪽 화살표 한 단어 오른쪽으로 선택 영역을 확장합니다.
편집.다음단어까지열확장선택 Ctrl+Shift+Alt+오른쪽 화살표 커서를 오른쪽으로 한 단어 이동하여 열 선택 영역을 확장합니다.
편집.이전단어까지선택 Ctrl+Shift+왼쪽 화살표 왼쪽으로 한 단어씩 선택을 확장합니다.
편집.이전단어까지열확장선택 Ctrl+Shift+Alt+왼쪽 화살표 커서를 왼쪽으로 한 단어 이동해서 열 선택을 확장합니다.

텍스트 조작 바로 가기 키

다음 바로 가기 키 조합은 텍스트 편집기에서 열려 있는 문서의 텍스트를 삭제하거나, 이동하거나, 서식을 지정할 때 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
편집.구분선 Enter
Shift+Enter
새 줄을 삽입합니다.
편집.문자바꾸기 Ctrl+T 삽입 포인트의 양쪽에 있는 문자를 바꿉니다. 예를 들어 AC|BD를 AB|CD로바꿉니다. 텍스트 편집기에서만 사용할 수 있습니다.
편집.책갈피지우기 Ctrl+K, Ctrl+L 현재 문서에서 명명되지 않은 책갈피를 모두 제거합니다.
편집.정의부분만보이기 Ctrl+M, Ctrl+O 프로시저와 같이 코드에 영역을 생성하기 위한 논리적 경계를 자동으로 결정한 후, 이를 숨깁니다.
편집.선택영역을주석으로처리 Ctrl+K, Ctrl+C 해당 프로그래밍 언어에 맞는 주석 구문을 사용하여 현재의 코드를 주석으로 표시합니다.
편집.단어자동완성 Alt+오른쪽 화살표
Ctrl+스페이스바
현재 언어에 따라 단어 완성을 표시합니다.
편집.삭제 Delete 커서의 오른쪽에 있는 문자 하나를 삭제합니다.
편집.뒤로삭제 백스페이스
Shift+백스페이스
커서의 왼쪽에 있는 문자 하나를 삭제합니다.
편집.가로공백삭제 Ctrl+K, Ctrl+\ 선택 영역의 공백을 축소합니다. 선택 영역이 없으면 커서 주위의 공백을 삭제합니다.
편집.문서서식 Ctrl+K, Ctrl+D 옵션 대화 상자에 있는 텍스트 편집기 섹션의 해당 언어 서식 창에 지정된 대로 해당 언어에 대한 들여쓰기 및 공백 서식을 적용합니다.
편집.선택영역서식 Ctrl+K, Ctrl+F 코드의 주변 줄에 맞춰 선택한 줄을 들여씁니다.
편집.선택영역숨기기 Ctrl+M, Ctrl+H 선택한 텍스트를 숨깁니다. 신호 아이콘은 파일에서 숨겨진 텍스트의 위치를 표시합니다.
편집.탭삽입 Tab 텍스트 줄을 지정한 공백 수 만큼(예: 5) 들여씁니다.
편집.줄잘라내기 Ctrl+L 선택한 모든 줄을 클립보드에 잘라냅니다. 선택한 줄이 없는 경우에는 현재 줄을 잘라냅니다.
편집.줄삭제 Ctrl+Shift+L 선택한 모든 줄을 삭제합니다. 선택한 줄이 없는 경우에는 현재 줄을 삭제합니다.
편집.위쪽줄열기 Ctrl+Enter 삽입 포인트 위에 빈 줄을 삽입합니다.
편집.아래쪽줄열기 Ctrl+Shift+Enter 삽입 포인트 아래에 빈 줄을 삽입합니다.
편집.줄바꾸기 Shift+Alt+T 삽입 포인트가 포함된 줄을 한 줄 아래로 이동합니다.
편집.소문자로 Ctrl+U 선택한 텍스트를 소문자로 변경합니다.
편집.대문자로 Ctrl+Shift+U 선택한 텍스트를 대문자로 변경합니다.
편집.겹쳐쓰기모드 Insert 삽입 모드와 겹쳐쓰기 모드를 전환합니다. 텍스트 편집기에서 작업할 때에만 사용할 수 있습니다.
편집.현재숨기기중지 Ctrl+M, Ctrl+U 현재 선택한 영역에 대한 개요 정보를 제거합니다.
편집.개요표시중지 Ctrl+M, Ctrl+P 전체 문서에 대한 개요 정보를 모두 제거합니다.
편집.앵커바꾸기 Ctrl+R, Ctrl+P 현재 선택 영역의 앵커와 끝 점을 바꿉니다.
편집.왼쪽으로탭이동 Shift+Tab 선택한 줄을 탭 정지 하나만큼 왼쪽으로 이동합니다.
편집.전체개요표시숨기기 Ctrl+M, Ctrl+L 이전에 표시된 모든 숨겨진 텍스트 섹션을 숨김 상태와 표시 상태 사이에서 전환합니다.
편집.책갈피설정해제 Ctrl+K, Ctrl+K 현재 줄에 책갈피를 설정하거나 제거합니다.
편집.개요확장축소 Ctrl+M, Ctrl+M 현재 선택된 숨겨진 텍스트 섹션을 숨김 상태와 표시 상태 사이에서 전환합니다.
편집.작업목록바로가기설정해제 Ctrl+K, Ctrl+H 현재 줄에 바로 가기를 설정하거나 제거합니다.
편집.자동줄바꿈설정해제 Ctrl +R, Ctrl+R 편집기의 자동 줄 바꿈 기능을 활성화하거나 비활성화합니다.
편집.선택영역의주석처리제거 Ctrl+K, Ctrl+U 현재 코드 줄에서 주석 구문을 제거합니다.
편집.공백보기 Ctrl+R, Ctrl+W 공백 및 탭 기호를 표시하거나 숨깁니다.
편집.끝까지단어삭제 Ctrl+Del 삽입 포인트 오른쪽에 있는 단어를 삭제합니다.
편집.시작까지단어삭제 Ctrl+백스페이스 삽입 포인트 왼쪽에 있는 단어를 삭제합니다.
편집.단어바꾸기 Ctrl+Shift+T 삽입 포인트의 양쪽에 있는 단어를 서로 바꿉니다. 예를 들면 |End Sub는 Sub End|가 됩니다.

창 관리 바로 가기 키

다음 바로 가기 키 조합은 도구 및 문서 창을 이동하거나, 닫거나, 탐색할 때 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
보기.전체화면 Shift+Alt+Enter 전체 화면 모드를 설정하거나 설정 해제합니다.
보기.뒤로탐색 Ctrl+- 탐색 기록에 있는 이전 문서 또는 창으로 돌아갑니다.
보기.앞으로탐색 Ctrl+Shift+- 탐색 기록에 있는 다음 문서 또는 창으로 이동합니다.
창.문서창활성화 Esc 메뉴 또는 대화 상자를 닫거나, 진행 중인 작업을 취소하거나, 현재 문서 창에 포커스를 둡니다.
창.문서창닫기 Ctrl+F4 현재 MDI 자식 창을 닫습니다.
창.도구창닫기 Shift+Esc 현재 도구 창을 닫습니다.
창.드롭다운표시줄로이동 Ctrl+F2 편집기가 코드 뷰에 있는 동안 커서를 드롭다운 표시줄로 옮깁니다.
창.다음문서창 Ctrl+F6
Ctrl+Tab
MDI 자식 창을 한 번에 하나씩 순환합니다.
창.다음창 Alt+F6 다음 도구 창으로 이동합니다.
창.다음분할창 F6 단일 문서에서 분할 창 뷰의 다음 창으로 이동합니다.
창.다음탭 Ctrl+Page Down 문서 또는 창의 다음 탭으로 이동합니다.
창.이전문서창 Ctrl+Shift+F6
Ctrl+Shift+Tab
편집기 또는 디자이너의 이전 문서로 이동합니다.
창.이전창 Shift+Alt+F6 이전에 선택한 창으로 이동합니다.
창.이전분할창 Shift+F6 분할 창 뷰에서 문서의 이전 창으로 이동합니다.
창.이전탭 Ctrl+Page UP 문서 또는 창의 이전 탭으로 이동합니다.

통합 도움말 바로 가기 키

아래의 바로 가기 키 조합은 도움말 항목들을 보거나 이동할 때 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
도움말.목차 Ctrl+Alt+F1 MSDN에 포함된 설명서의 목차 창을 표시합니다.
도움말.동적도움말 Ctrl+F1 제품에서 현재 포커스를 가진 대상에 따라 다른 항목을 표시하는 동적 도움말 창을 표시합니다.
도움말.F1도움말 F1 현재 선택된 사용자 인터페이스에 해당하는 도움말의 항목을 표시합니다.
도움말.색인 Ctrl+Alt+F2 MSDN에 포함된 설명서의 색인 창을 표시합니다.
도움말.색인결과 Shift+Alt+F2 색인 창에서 선택한 키워드가 포함된 항목을 나열하는 색인 결과 창을 표시합니다.
도움말.다음항목 Alt+아래쪽 화살표 목차의 다음 항목을 표시합니다. 도움말 (웹) 브라우저 창에서만 사용할 수 있습니다.
도움말.이전항목 Alt+위쪽 화살표 목차의 이전 항목을 표시합니다. 도움말 (웹) 브라우저 창에서만 사용할 수 있습니다.
도움말.검색 Ctrl+Alt+F3 MSDN에 포함된 설명서에서 단어나 구를 검색할 수 있는 검색 창을 표시합니다.
도움말.검색결과 Shift+Alt+F3 검색 창에서 검색한 문자열이 포함된 주제 목록을 표시하는 검색 결과 창을 표시합니다.
도움말.창도움말 Shift+F1 현재 선택된 사용자 인터페이스에 해당하는 도움말의 항목을 표시합니다.

개체 브라우저 바로 가기 키

다음 바로 가기 키 조합은 개체 브라우저 창에서 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
편집.기호찾기 Alt+F12 기호 찾기 대화 상자를 표시합니다.
편집.선언으로이동 Ctrl+F12 코드에서 선택한 기호에 대한 정의를 표시합니다.
편집.정의로이동 F12 코드에서 선택한 기호에 대한 선언을 표시합니다.
보기.기호찾기결과 Ctrl+Alt+F12 기호 찾기 결과 창을 표시합니다.
보기.개체브라우저 Ctrl+Alt+J 패키지에 포함된 클래스, 속성, 메서드, 이벤트, 상수를 보거나 프로젝트의 개체 라이브러리와 프로시저를 볼 수 있는 개체 브라우저를 표시합니다.
보기.개체브라우저뒤로 Alt+- 개체 브라우저의 선택 기록에서 이전에 선택한 개체로 이동합니다.
보기.개체브라우저앞으로 Shift+Alt+- 개체 브라우저의 선택 기록에서 다음 개체로 이동합니다.

매크로 바로 가기 키

다음 바로 가기 키 조합은 매크로 작업을 할 때 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
보기.매크로탐색기 Alt+F8 현재 솔루션에 사용할 수 있는 모든 매크로를 나열하는 매크로 탐색기 창을 표시합니다.
도구.매크로IDE Alt+F11 매크로 IDE, Visual Studio Macros를 실행합니다.
도구.TemporaryMacro기록 Ctrl+Shift+R 환경을 매크로 기록 모드에 놓습니다.
도구.TemporaryMacro실행 Ctrl+Shift+P 기록된 매크로를 재생합니다.

도구 창 바로 가기 키

다음 바로 가기 키 조합으로 특정 도구 창을 표시할 수 있습니다.

명령 이름 바로 가기 키 설명
도구.명령창표시모드 Ctrl+Shift+M 명령 창 내부에서 텍스트를 선택할 수 있도록 합니다.
보기.클래스뷰 Ctrl+Shift+C 클래스 뷰 창을 표시합니다.
보기.명령창 Ctrl+Alt+A IDE 조작 명령을 입력할 수 있는 명령 창을 표시합니다.
보기.문서개요 Ctrl+Alt+T 현재 문서에 대해 수평 또는 계층 구조로 된 개요를 볼 수 있도록 문서 개요 창을 표시합니다.
보기.즐겨찾기 Ctrl+Alt+F 웹 페이지로 연결되는 바로 가기가 나열된 즐겨찾기 창을 표시합니다.
보기.출력 Ctrl+Alt+O 런타임 시 상태 메시지를 볼 수 있는 출력 창을 표시합니다.
보기.속성창 F4 현재 선택한 항목의 디자인 타임 속성 및 이벤트를 나열하는 속성 창을 표시합니다.
보기.속성페이지 Shift+F4 현재 선택한 항목의 속성 페이지를 표시합니다.
보기.리소스뷰 Ctrl+Shift+E 리소스 뷰 창을 표시합니다.
보기.서버탐색기 Ctrl+Alt+S 데이터베이스 서버, 이벤트 로그, 메시지 대기열, 웹 서비스 및 기타 여러 운영 체제 서비스를 보고 조작할 수 있는 서버 탐색기 창을 표시합니다.
보기.웹브라우저표시 Ctrl+Alt+R 인터넷 페이지를 볼 수 있는 웹 브라우저 창을 표시합니다.
보기.솔루션탐색기 Ctrl+Alt+L 현재 솔루션의 프로젝트 및 파일을 나열하는 솔루션 탐색기를 표시합니다.
보기.작업목록 Ctrl+Alt+K 작업, 주석, 바로 가기, 경고 및 오류 메시지를 사용자 지정하고, 분류하고, 관리할 수 있는 작업 목록 창을 표시합니다.
보기.도구상자 Ctrl+Alt+X 코드와 함께 포함시키거나 사용할 수 있는 기타 항목 및 컨트롤이 들어 있는 도구 상자를 표시합니다.

프로젝트 바로 가기 키

다음 바로 가기 키 조합은 프로젝트에 새 항목을 추가하거나 프로젝트를 빌드하거나, 파일 또는 프로젝트를 열 때 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
빌드.솔루션빌드 Ctrl+Shift+B 솔루션을 빌드합니다.
빌드.컴파일 Ctrl+F7 선택한 파일의 함수/데이터 이름, 외부 참조, 섹션, 링커 지시문, 기계어 코드 등을 포함하는 개체 파일을 만듭니다.
파일.기존항목추가 Shift+Alt+A 현재 프로젝트에 기존 파일을 추가할 수 있는 기존 항목 추가 대화 상자를 표시합니다.
파일.새항목추가 Ctrl+Shift+A 현재 프로젝트에 새 파일을 추가할 수 있는 새 항목 추가 대화 상자를 표시합니다.
파일.새파일 Ctrl+N 새 파일을 선택하여 현재 프로젝트에 추가할 수 있는 새 파일 대화 상자를 표시합니다.
파일.새프로젝트 Ctrl+Shift+N 프로젝트를 만들어 현재 솔루션에 추가할 수 있는 새 프로젝트 대화 상자를 표시합니다.
파일.파일열기 Ctrl+O 기존 파일을 열 수 있는 파일 열기 대화 상자를 표시합니다.
파일.프로젝트열기 Ctrl+Shift+O 기존 프로젝트를 현재 솔루션에 추가할 수 있는 새 프로젝트 대화 상자를 표시합니다.
프로젝트.재정의 Ctrl+Alt+Ins 파생 클래스의 기본 클래스 메서드를 재정의할 수 있습니다. C#에서 사용할 수 있습니다.

기타 편집기 바로 가기 키

액셀러레이터 키 편집기 또는 문자열 편집기에서 다음과 같은 바로 가기 키 조합을 사용할 수 있습니다.

명령 이름 바로 가기 키 설명
편집.새액셀러레이터키 Insert 액셀러레이터 키에 새 엔트리를 추가합니다. 액셀러레이터 키 편집기에서만 사용할 수 있습니다.
편집.새문자열 Insert 문자열 테이블에 새 엔트리를 추가합니다. 문자열 편집기에서만 사용할 수 있습니다.

2010년 3월 12일 금요일

닥터왓슨 (Dr. Watson, Drwtsn32.exe) 사용법 :: 프로그램 오류, 버그 해독개발자 팁, 강좌

개요..

닥터왓슨 (Dr. Watson, Drwtsn32.exe) 은 디버그(Debug)와 릴리즈(Release)버전에서 프로그램 오류발생 할 경우 오류 내용을 해독할 수 있는 정보를 제공해주는 특히 서버프로그램에서 아주 유용하게 사용됩니다.

"drwtsn32.exe" 실행하여 도움말을 클릭하면 자세한 한글 설명서를 볼 수 있습니다.


 

오류가 발생하는 테스트 프로그램 다운로드

윈도우 디버그 심볼(Debug Symbol) 다운로드 받는 방법

 

따라해보기

내가 만든 프로그램의 심볼을 닥터왓슨(Dr. Watson)에 등록시켜보기

1. 내 컴퓨터 등록정보->고급->환경변수 에  _NT_SYMBOL_PATH 등록합니다.

 

2. 변수값에 %systemroot%\Symbol;D:\Symbol; 추가합니다.

3. 닥터왓슨을 다음과 같이 실행시켜 기본 디버거로 등록합니다.

 drwtsn32.exe -i

4. 릴리즈버전의 링크옵션에 "Generate debug info"를 체크합니다.

5. 컴파일 하여 생성된 *.pdb 파일을 심볼 폴더로 복사합니다.  

6. 릴리즈버전을 실행시켜 오류 발생 시험합니다.  

오류가 발생 후  오류 함수와 내용이 무엇인지 알아보기

drwtsn32.log 파일 일부분

응용 프로그램 예외 발생:

응용 프로그램: (pid=1224)

날짜: 2004-05-21 @ 23:30:20.968

예외 번호: c0000005 (액세스 위반)

 

함수: fnc_1

00401005 b9e8030000 mov ecx,0x3e8

0040100a 33ff xor edi,edi

오류 -> 0040100c f3ab rep stosd es:00000000=????????

0040100e 5f pop edi

 

*----> 스택 역 추적 <----*

FramePtr ReturnAd Param#1 Param#2 Param#3 Param#4 Function Name

0012FF74 0040101A 000003E8 00401025 004010E4 00000001 !fnc_1 (FPO: [1,0,1])

0012FF7C 00401025 004010E4 00000001 00340C20 00340C58 !fnc_2 (FPO: [0,0,0])

0012FF80 004010E4 00000001 00340C20 00340C58 00000000 !main (FPO: [2,0,0])

0012FFC0 77E61AF6 00000000 00000000 7FFDF000 C0000005 !mainCRTStartup

0012FFF0 00000000 00401030 00000000 000000C8 00000100 kernel32!OpenEventA

 

Visual C++ 를 기본 디버거로 다시 등록하는 레지스트리

 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]

"Auto"="0"

"Debugger"="\"E:\\Program Files\\Microsoft Visual Studio\\Common\\MSDev98\\Bin\\msdev.exe\" -p %ld -e %ld"

"UserDebuggerHotKey"=dword:00000000

2010년 3월 9일 화요일

WinDbg(덤프 분석) 설치 및 사용법

WinDbg는 덤프를 분석할때 사용되는 툴이다.

 

즉 커널덤프라던지, 전체 덤프 파일을 읽어서 어디가 잘못 되었는지, 어디가 문제였는지 확인할때 쓰인다.

 

다운로드는 MS에서 직접 다운을 받으면 되고,

주기적으로 버전이 업데이트 되서 나오니... 최신 버전을 다운 받을수 있다.

http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx

 

자신의 OS 환경에 맞는 버전을 설치하자.

설치가 완료 되면 아래와 같이 WinDbg를 실행 할수 있게 된다.

 

 

이제 환경 설정을 진행 하자.

우선 WinDbg를 실행 시키고 [File]-[Symbol File Path]를 실행 한다.

 

 

Symbol File Path에 "SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols" 를 입력 한다.

 

 

자~ 이제 기본적인 셋팅은 끝났다.

그외에 [Image File Path]을 설정 할수 있는데 OS의 이미지 경로(OS CD의 i386 폴더)을 선택 해도 되고 안해도 된다.

 

이제 덤프파일을 가져오자!!!

덤프 파일은 블루스크린 및 컴퓨터에 오류가 발생 했을때 생성되며, 만약 생성이 안되어 있다면....

아래 그림과 같이 [내컴퓨터 속성]-[고급]-[시작및 복구 설정] 에 붉은 박스 내용처럼 되어 있는지 확인 하자

 

여기서 커널 메모리, 전체 메모리, 작은 메모리 방식은 어느정도의 자료를 남길것인가로 생각 하면 된다.

작은 메모리는 무엇 때문에 문제가 되었는지는 확인 할수 있으나, 왜 문제가 발생했는지 확인하기 어렵다.

 

저장 경로는 %SystemRoot% => C:\Windows\ 폴더 이다.(Windows가 C드라이버에 설치 되어있을 경우)

 

블루스크린이 발생 할 경우, 또는 심각한 오류에서 복구가 될 경우 덤프파일이 생성 되구

해당 덤프파일을 읽어와서 분석을 해보자!!!

 

우선 [File]-[Open Crash Dump]을 실행해서 MEMORY.DMP 파일을 불러온다.

 

자 그럼 해당 MEMORY.DMP에서 오류 사인을 분석 하게 된다.

우선 아래 덤프 파일은 "ntkrpamp.exe" 파일에서 문제가 발생 한것으로 보인다.

좀더 자세히 알고 싶으면 !analyze -v 를 클릭 또는 kb> 에 !analyze -v 을 입력뒤 엔터를 친다.

 

이제 좀더 정확한 자료들이 표시가 되는데 이미지는 생략 하도록 하겠다.

해당 파일이 누구 모듈인지(개발자가 여러명일때), 또한 인터넷을 통해 해당 파일이 어떤 역할을 하는 파일인지 확인후

담당 개발자에게 해당 덤프파일을 주면 처리 할것이다.

 

만약 자기 자신이 개발한 프로그램에서 이런 증상이 발견 된다면, 문제가 되는 변수, 함수등을 디버거 모드로 컴파일 해가면서

잘못된 부분을 찾아야겠지....^^a

WinDbg를 사용하여 process dump 생성

Process 의 crash, hang 덤프를 수집하기 위해 Debug Diag 또는 adplus.vbs 를 흔히 사용하고 있습니다. 하지만 간혹 프로세스 crash 가 발생하였음에도 불구하고 터미널 세션에서 crash dump 를 수집하지 못하는 경우가 있었습니다. 이런 경우 WinDbg 를 통해서 덤프를 내려받을 수 있습니다. WinDbg 를 사용한 덤프 수집 방법에 대해서 아래와 같이 정리하였습니다.


1. 테스트를 위해 계산기(calc.exe) 프로그램을 실행합니다.
2. WinDbg 실행 - File - Attach to a Process - calc.exe 해당 PID 선택



3. 대상 프로세스(Debuggee)가 정상적으로 Debugger Tool 에 Attach 되면 'g' 명령을 수행하여 Debuggee 가 제어권을 가지도록 넘겨 줍니다.



4. calc.exe 프로세스를 강제 종료합니다. 제어권이 다시 디버거로 돌아옵니다.
eax=00000000 ebx=00000000 ecx=7c7d0000 edx=7c9ae120 esi=7c93de6e edi=00000000
eip=7c93e514 esp=0007fde8 ebp=0007fee4 iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
ntdll!KiFastSystemCallRet:
7c93e514 c3              ret



5. .dump 명령을 수행하여 메모리 덤프 파일을 내려 받습니다.
0:000> .dump /f d:\calc_crash.dmp
Creating d:\calc_crash.dmp - mini user dump
Dump successfully written

※ /f : Creates a complete memory dump, /o : overwrites an existing dump file  
[참고자료]