DEBUG 상지대학교컴퓨터정보공학부. Debug 시작하기  Windows XP 에서 “ 시작 ” 버턴을 클릭한다.  시작메뉴에서 “ 프로그램 ” 을 클릭하고, 보조프로그램을 선택한다.  보조프로그램에 “ 명령 프롬프트 ” 를 클릭한다.  Window XP 에서.

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

1/29 키보드로 직접 입력할 수 없는 다양한 기호와 한자를 입력하는 방법을 알아 보자. 또한 블록으로 영역을 설정하는 여러 가지 방법에 대해 살펴본 후 블록 으로 설정된 내용을 복사하여 붙여넣거나, 잘라내고 이동하는 방법에 대해서 도 알아보자. 02_ 문서의 입력과 편집.
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
제 2 장 74HC574 소자를 이용한 LED DISPLAY.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
Cary UV 분석 매뉴얼 1. 바탕화면의 Cary WinUV 클릭 정량분석 다 파장 동시분석 단 파장 분석
스마트워크(가상화) 외부 접속 방법 정보관리실.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
<<< 시스템등록정보 “하드웨어-장치관리자” 설정 >>>
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
제7강 학습 내용 주소지정 방식의 예 값 즉시 지정 방식과 실행 예 레지스터 직접지정 방식 메모리 직접지정 방식과 실행 예
SQL*PLUS.
어셈블리 문법 보강 4월 10일.
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Root Filesystem Porting
컴퓨터정보공학부 서버 안내 [ IBM x3500 ] it.sangji.ac.kr ict.sangji.ac.kr 혹은
부트로더와 Self Programming
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
DK-128 개발환경 설정 아이티즌 기술연구소 김태성 연구원
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
Cross Compiler를이용한 커널 컴파일 및 포팅
프로그래밍 개요
어셈블리어 (2) 매크로 어셈블리어 시스템 프로그래밍 - Lecture #4
Linux/UNIX Programming
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
Linux/UNIX Programming
DK-128 FND 실습 아이티즌 기술연구소
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
1차시: 낮과 밤이 생기는 원리 지구과학
8장. spss statistics 20의 데이터 변환
자바 5.0 프로그래밍.
ARM Development Suite v1.2
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부.
Linux/UNIX Programming
Linux/UNIX Programming
( Windows Service Application Debugging )
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
DK-128 개발환경 설정 아이티즌 기술연구소 김태성 연구원
DK-128 개발환경 설정 아이티즌 기술연구소
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
05. General Linear List – Homework
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
메뉴(Menu) 컴퓨터응용 및 실습 I.
ARM Development Suite v1.2
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
TVM ver 최종보고서
3.2 분기 명령어.
EZ-8051 Board를 이용한 E-Board의 제어
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수
Assembly 05 방호남 07 반지훈 09 박상욱.
                                  6장 엔코드 디코드 회로 10진수와 2진수의 변환 및 표시 4 7 A B C D BCD 변환.
Linux/UNIX Programming
ARM Development Suite v1.2
Linux/UNIX Programming
Presentation transcript:

DEBUG 상지대학교컴퓨터정보공학부

Debug 시작하기  Windows XP 에서 “ 시작 ” 버턴을 클릭한다.  시작메뉴에서 “ 프로그램 ” 을 클릭하고, 보조프로그램을 선택한다.  보조프로그램에 “ 명령 프롬프트 ” 를 클릭한다.  Window XP 에서 명령 프롬프트 창이 다음과 같이 나타난다.

Debug 기동 및 종료  명령 프롬프트 창에서 다음과 같이 타이핑한다. C:\>debug - -q C:\>_  또 다른 방법은 화일명과 같이 기동하면 방법이다. C:\>debug {filename} [parameter] - -q C:\>_

Debug 기동 및 종료 ( 계속 )  Debug 가 메모리에 로드된 후 debug 는 사용 가능한 메모 리의 최하위 세그멘트의 오프세트 100H 번지 이후에 파 일명 {filename} 으로 지정된 파일을 로드하고, BX:CX 레 지스터에 로드한 파일의 바이트 수를 세트한다.

 Debug 명령어 명 령명 령형 식형 식기 능 Help? Debug 명령어 리스트를 디스플레이 QuitQ Debug 종료 RegisterR [register] 레지스터 내용을 덤프하고 수정 DumpD [range] 지정된 range 의 메모리의 내용을 덤프 EnterE [address][list] 메모리의 address 부터 시작하여 메모리 의 내용을 list 에 지정된 값으로 입력 FillF [range][list] 지정된 range 의 메모리 내용을 list 에 지 정된 값으로 채움 MoveM [range][address] 지정된 range 의 메모리 내용을 address 에서 부터 시작되는 메모리의 위치에 이 동

 Debug 명령어 ( 계속 ) 명 령명 령형 식형 식기 능 CompareC [range] [address] 지정된 range 의 메모리 내용과 address 에서 부터 시작하여 같은 범위의 메모리내용 비교 SearchS [range] [list] range 의 메모리 내용을 검색하여 list 의 값과 일치하는 메모리 위치 디스플레이 AssembleA [address] 어셈블리 명령어를 어셈블하여 기계어 코드 로 저장 UnassembleU [range] 지정된 범위의 기계어 코드를 어셈블리 명령 어로 변환하여 디스플레이 Go G [=address] [breakpoint addr] Address 로부터 시작하여 breakpoint addr 까 지 실행 TraceT[=address][value] Address 부터 시작하여 지정된 수 만큼 명령 어를 실행하고 레지스터 내용 디스플레이 NameN [filename] 파일이름을 지정

 Debug 명령어 ( 계속 ) 명 령명 령형 식형 식기 능 LoadL [address] N 으로 지정된 파일로부터 BX:CX 크기 만큼의 바이트를 address 부터 시작하는 메모리 적재 WriteW [address] N 으로 지정된 파일에 address 부터 시작 하는 메모리의 BX:CX 크기 만큼의 바이 트 저장

 Debug 명령어 C:\>debug -?  Assemble : 명령을 1 행씩 어셈블하여 지정한 address 이후의 메모리 써 넣는 다. [ 서식 ] A [address] [ 예 1] –a1000 [ 예 2] –a mov ah, 02 mov dl, 41h int 21h int 20h

[ 예 3] –a mov ah, 9 mov dx, 109 int 21h int 20h 109 db ‘Sangji University’  Compare : 로 지정된 범위의 메모리 내용과 로 시작되는 같은 크기의 범위의 메모리 내용을 비교 [ 서식 ] C [ 예 ] –c 2000:0 7F 100

 Dump : 메모리 내용을 16 진과 ASCII 로 나타낸다. [ 서식 ] D [ ] [ 예 1] d : -d 3dcf 3edf [ 예 2] d : -d100 [ 예 3] d : -d  Enter : 지정된 의 메모리 내용 변경 [ 서식 ] E [list] [ 예 1] –e100 4d 53 2d 44 4f 53 [ 예 2] -e100 ‘Sangji University’ -d100 [ 예 3] –e100 :  ^ 67.  (  는 키보드 입력부분, ^ 는 space bar)

 Fill : 로 지정된 범위의 메모리를 로 지정된 값으 로 채운다. [ 서식 ] F [ 예 1] –f100 11f 0 : 0 으로 채운다. [ 예 2] –f : 반복적으로 채운다.  Go : debug 상에서 메모리에 로드된 프로그램을 실행한다. [ 서식 ] G : address 1 = Start, address 2 = Break [ 예 1] -g =100 [ 예 2] -g [ 예 3] C:\>debug test.exe -g

 Hex : 2 개의 16 진수 합과 차를 계산하여 화면으로 출력 [ 서식 ] H [ 예 1] –h 56a3 ef13 45B8 678E : 45B8 = 합, 678E = 차 [ 예 4] -a100 mov ah, 09 mov dx, 109 int 21h int 20h  db ‘Sangji University’ -g=100  Input : 로 지정된 I/O port 에서 1 바이트 입력하고 화면에 표 시 [ 서식 ] I [ 예 1] -i90 : port address 90h 의 내용 표시 -i1036

 Load : 파일 또는 디스크 레코드 내용을 메모리에 로드한다. [ 서식 ] L [ [ ]] [ 예 1] –l C:\>debug -n test -l2000 [ 예 2] -l [ 예 3] -l : address = 100, drive = A, record = 0, value = 2 sector [ 참고 ] 0 = A drive, 1 = B drive, 2 = C drive  Move : 로 지정된 메모리 영역을 지정한 address 에서 시작하는 영역으로 이동한다. [ 서식 ] M [ 예 1] -m a 200 : a 는 범위

 Name : FCD (file control block) 에 파일명을 세트한다. [ 서식 ] N [ ….. ] [ 예 1] -n [ 예 2] -n command.com -l -g  Output : 로 지정된 address 의 I/O port 에 로 지정된 값을 출력 [ 서식 ] O [ 예 1] -oal 03 [ 예 2] –oe2ae 06  Quit : Debug 의 기능을 종료 [ 서식 ] Q [ 예 1] -q

 Register : 레지스터의 내용을 설정 / 표시한다. [ 서식 ] R [ 예 1] -r [ 예 2] -rax AX 0000 : _____ ( 입력 ) [ 예 3] -rip [ 예 4] -rf : flag 의 내용 변경

 Flag 의 내용 Flag 항목 PositiveNegative OverflowOV (overflow)NV (non-overflow) DirectionDN (down)UP (up) InterruptEI (enable int.)DI (disable int.) SignPL (positive)NG (negative) ZeroZR (zero)NZ (nonzero) Aux. CarryAC (aux. carry)NA (non aux. carry) ParityPE (even parity)PO (odd parity) CarryCY (carry)NC (non carry)

 Search : 로 지정된 범위로 지정된 를 검색한다. [ 서식 ] S [ 예 1] -s cd 21 : 100h ~ 200h 사이에 CD 21 을 검색  Trace : 레지스터나 flag 및 실행 중인 명령의 니모닉을 표시하면서 한 명령식 프로그램을 실행 [ 서식 ] T [= ] [ 예 1] -t=100 5 : 100 번지부터 5 step 씩 증가하여 실행 [ 예 2] -t2 : 2 step 씩 증가하여 실행

 Unassemble : 로 지정된 범위의 메모리 내용을 역 어셈블해서 표시 [ 서식 ] U [ ] [ 예 1] -u C:\>debug format.com -u u 100, 140 [ 예 2] -u [ 예 3] -u 100  Write : 로 지정된 메모리 영역의 내용을 드라이버에 저장 [ 서식 ] W [ ] [ ] [ 예 1] -w [ ]

 Write 명령 사용방법 C:\>debug -a mov ah, 09 mov dx, 109 int 21 int 20 db ‘Sangji University$’ db ‘School of Computer$’ -rcx CX 0000 : 45 -ntest.com -w -q C:\>test : 프로그램 실행

 Computer 종류보기 -d F000:FFF5 L 8 mm/dd/yy : Computer 종류 -d F000:FFFE L 1 FF : PC FE : XT and Portable PC FD : PCjr FC : AT 2D : Compaq 9A : Compaq Plus  웃음문자 출력 프로그램 -a100 mov dl, 1 mov ah, 2 int 21 int 20 -g : 프로그램 실행

 한 문자 출력 프로그램 -a100 mov dl, 58 mov ah, 02 int 21 int 20 -g X program terminated normally

 문자연속 표시 프로그램 -a100 mov dl, 0 mov ah, 2 int 21 inc dl jmp 102 -u100, 109 : 입력 프로그램 확인 -rbx BX 0000 (BX Register 의 값 ) : ( 기존의 값을 변경하지 않음 ) -rcx CX 0000 : a ( 기존의 값을 a(=10) 으로 변경함 ) -nascii.com -w writing 000A bytes -q C:\>ascii : 프로그램 실행

 음향발생 프로그램 -1 -a100 in al, 61 and al, fc xor al, 2 out 61, al mov cx, 140 loop 10b jmp 104 -u100, 109 -nsound.com -rbx BX 0000 (BX Register 의 값 ) :  음향발생 프로그램 ( 계속 ) -rcx CX 0000 : f -w writing 000F bytes -q C:\>ascii : 프로그램 실행 [ 실행을 중지시키는 방법 : Alt + Ctrl + Del ]

 음향발생 프로그램 -2 -a100 in al, 61 and al, fc xor al, 02 out 61, al mov cx, 0100 loop 10b jmp 104 -u100, 109 -nsound-2.com -rbx BX 0000 (BX Register 의 값 ) :  음향발생 프로그램 ( 계속 ) -rcx CX 0000 : f -w writing 000F bytes -q C:\>ascii : 프로그 램 실행 [ 실행을 중지시키는 방법 : Alt + Ctrl + Del ]

 ASCII 출력 프로그램 -a100 mov cx, 100 mov dl, 0 mov ah, 02 int 21h inc dl loop 105 int 20h -u100, 109 -nmascii.com -rbx BX 0000 (BX Register 의 값 ) :  ASCII 출력 프로그램 ( 계속 ) -rcx CX 0000 : f -w writing 000F bytes -q C:\>mascii : 프로그램 실행