>  기사  >  운영 및 유지보수  >  debug g 명령을 사용하는 방법은 무엇입니까?

debug g 명령을 사용하는 방법은 무엇입니까?

藏色散人
藏色散人원래의
2019-04-29 11:13:5810534검색

DEBUG의 G 명령은 코드를 실행하는 데 사용됩니다. 구문은 "g [=address] [breakpoints]"입니다. 이 명령 뒤에는 주소와 중단점이 올 수 있습니다. 추가되지 않은 경우 매개변수 기본값은 현재 IP에서 프로그램 끝까지 실행되는 것입니다.

debug g 명령을 사용하는 방법은 무엇입니까?

DEBUG의 G 명령은 코드를 실행하는 데 사용됩니다. 이 명령 뒤에는 주소와 중단점이 올 수 있습니다. 즉, 형식은 g [=address] [breakpoints]입니다. 매개변수가 추가되지 않은 경우 기본값은 메모리의 지정된 위치에서 코드를 실행한 후 일시 중지됩니다. 현재 IP부터 프로그램 끝까지 실행됩니다.

debug g 명령을 사용하는 방법은 무엇입니까?

debug g 명령 구문

g [=address] [breakpoints]

매개변수:
address, 현재 메모리에 있는 프로그램의 경우 실행이 시작되는 주소를 지정합니다.
중단점, g 하위 명령의 일부로 설정할 수 있는 임시 중단점을 1~10개 지정합니다.
?, 디버그 하위 명령 목록을 표시합니다.

참고:
Windows XP에서는 이 명령을 사용하지 않습니다. MS-DOS 파일과의 호환성을 위해서만 사용하십시오.
유효한 주소 항목을 지정하세요. 주소는 알파벳 세그먼트 레코드 또는 4자리 필드 주소와 오프셋을 포함하는 2자리 이름입니다. 세그먼트 레지스터 또는 세그먼트 주소는 무시될 수 있습니다.

CS는 a, g, l, t, u 및 w "디버그" 하위 명령에 대한 기본 섹션입니다. 다른 모든 명령의 기본 세그먼트는 DS입니다. 모든 값은 16진수 형식입니다. 세그먼트 이름과 오프셋 사이에는 콜론이 포함되어야 합니다. 유효한 주소는 다음과 같습니다.

CS:0100
04BA:0100

주소 매개변수 사용
주소와 중단점을 구별하려면 주소 매개변수 앞에 등호(=)를 사용해야 합니다.

중단점 지정
중단점 목록의 어디에 중단점을 입력하더라도 프로그램은 첫 번째 중단점에서 중지됩니다. Debug.exe는 각 중단점에서 원래 명령을 중단 코드로 바꿉니다.

프로그램이 중단점에 도달하면 Debug.exe는 모든 중단점 주소를 원래 명령어로 복원하고 모든 레지스터의 내용, 모든 플래그 상태 및 마지막으로 실행된 명령어의 디코딩된 형식을 표시합니다. 이제 Debug.exe는 r(register) 하위 명령을 사용하고 중단점 주소를 지정할 때와 동일한 정보를 표시합니다.

중단점에서 프로그램을 중지하지 않으면 Debug.exe는 인터럽트 코드를 원래 명령으로 바꾸지 않습니다.

8086 opcode(opcode)의 첫 번째 바이트가 포함된 주소에만 중단점을 설정할 수 있습니다. 10개가 넘는 중단점이 설정된 경우 Debug.exe는 다음 메시지를 표시합니다.

bp error

사용자 스택 포인터 사용
사용자 스택 포인터는 유효해야 하며 g 하위 명령에 사용할 수 있는 6바이트가 있어야 합니다. g 하위 명령은 iret 명령을 사용하여 테스트해야 하는 프로그램으로 이동합니다. Debug.exe는 사용자 스택 포인터를 설정하고 사용자 플래그, 코드 세그먼트 레지스터 및 명령 포인터를 사용자 스택에 푸시합니다. (사용자 스택이 유효하지 않거나 너무 작을 경우 운영 체제가 실패할 수 있습니다. Debug.exe는 지정된 중단점 주소 또는 지정된 주소에 중단 코드(0CCh)를 배치합니다.

프로그램을 다시 시작하세요
다음 메시지가 나타난 후, 프로그램을 다시 시작하지 마십시오.

Program terminated normally

프로그램을 올바르게 실행하려면 n(이름) 및 l(로드) 하위 명령을 사용하여 프로그램을 다시 로드해야 합니다.

p 하위 명령을 사용하여 반복되는 문자열을 가져옵니다. 명령어, 소프트웨어 인터럽트 또는 서브루틴에 대해서는 관련 항목을 참조하세요.
t 하위 명령을 사용하여 명령어를 실행하는 방법에 대한 자세한 내용은 관련 항목을 참조하세요.

예제
현재 메모리에 있는 프로그램을 실행하고 중단점 주소 7550까지 실행하려면 CS 세그먼트에 다음을 입력하세요.

gcs:7550

Debug.exe는 레지스터의 내용과 플래그 상태를 표시한 다음 g 하위 명령을 종료합니다.

두 개의 중단점을 설정하려면 다음을 입력하세요.

gcs:7550, cs:8000
.

Debug.exe가 중단점을 만난 후 g 하위 명령을 다시 입력하면 시작 주소

대신 중단점 다음 명령부터 실행이 시작됩니다.

위 내용은 debug g 명령을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.