| HOME / 정보공유 / AIX 명령어 모음

kdb
kdb kdb 명령 목적 덤프를 조사하기 위한 시스템 이미지를 표시합니다. 구문
kdb [ SystemImageFile [ KernelFile]]
설명
kdb 명령은 운영 시스템 이미지 또는 수행 중인 커널을 시험하기 위한 대화식 유틸리티입니다. kdb 명령은 시스템의 제어 구조를 해석하고 형식화하며 덤프를 조사하기 위한 기타 기능들을 제공합니다.
SystemImageFile 매개변수는 시스템 이미지를 가지고 있는 파일을 지정합니다. 디폴트 SystemImageFile은 /dev/mem입니다
KernelFile 매개변수에는 커널 기호 정의가 들어 있습니다. 디폴트 KernelFile은 /usr/lib/boot/unix입니다.
활성 중인 시스템에서 kdb 명령을 실행하기 위해서는 루트 사용권한이 필요합니다. 그 이유는 특수 파일 /dev/mem을 사용하기 때문입니다. 활성 중인 시스템에서 kdb 명령을 수행하려면 다음을 입력하십시오.
kdb
시스템 이미지 파일에서 kdb 명령을 호출하려면 다음을 입력하십시오.
kdb SystemImageFile
SystemImageFile은 파일 이름이거나 덤프 장치의 이름입니다. SystemImageFile에서 데이터를 열람하려고 kdb 명령을 호출하면, 디폴트 스레드를 SystemImageFile이 작성될 때 수행 중인 스레드로 설정합니다.
주:
1. kdb 명령을 사용할 때 커널 파일이 사용 가능해야 합니다.
2. 수행 중인 시스템에서 현재 프로세스의 스택 추적은 작동하지 않습니다.
사용 방법
이 명령은 POWER 기반 플랫폼에서만 유효합니다.
부속 명령 인수
다음 테이블은 부속 명령 구문 도표에서 참조되는 가장 일반적인 인수 유형을 설명한 것입니다.

인수 | 설명
* | 모든 항목을 선택하는 데 사용되는 와일드 카드
- | 페이지 스크롤링을 켜거나 끄기 위해 사용됩니다.kdb 명령 프롬프트에서 setup부속 명령과 함께 사용됩니다.
count | 특정 조작을 수행하는 횟수를 지정하는 16진 상수
cpu | SMP 기계에서 cpu 번호를 지정하는 십진수 값
eaddr | 유효 주소. 16진 상수 또는 표현식이 될 수 있습니다.
paddr | 물리적 주소
pid | 프로세스 ID를 지정하는 16진 상수 또는 표현식
selection | 선택이 이루어져야 하는 곳을 표시하는 메뉴를 나타냅니다.
slot | 테이블 내에서 슬롯 번호를 지정하는 10진 상수
symb | 값에 대한 상징적 참조. 커널이나 확장 커널의 기호가 사용될 수 있습니다.
tid | 스레드 ID를 지정하는 16진 상수 또는 표현식
tslot | 스레드 테이블 내에서 슬롯 번호를 지정하는 10진 상수

kdb 명령
다음은 kdb 명령에서 사용 가능한 부속 명령을 나열한 것입니다. 예를 포함한 부속 명령에 대한 보다 자세한 정보는 AIX 5L Version 5.1 Kernel Extensions and Device Support Programming Concepts에서 KDB 커널 디버거 및 kdb 명령의 부속 명령을 참조하십시오. 다음 부속 명령 설명은 기능적 집합으로 그룹화됩니다.
기본 부속 명령
메모리 표시 및 분해 부속 명령
기호 부속 명령
계산기 부속 명령
기계 상태 부속 명령
로더 부속 명령
프로세스 부속 명령
LVM 부속 명령
SCSI 부속 명령
메모리 할당 부속 명령
파일시스템 부속 명령
시스템 테이블 부속 명령
네트워크 부속 명령
VMM 부속 명령
기본 부속 명령
alias [ aliasname [ =Comand String ] ] 이 명령은 별명을 정의 또는 표시합니다. 또한 별명 정의 를 작성 또는 재정의하거나 기존 별명 정의를 표준 출력에 기록합니다.
h 명령 리스트를 간단한 설명과 함께 표시합니다.
his [?] [count] hist 명령은 내역 명령을 인쇄합니다.
e kdb 명령을 종료합니다. e 부속 명령 별명으로도 인식됩니다.
set [toggle|count] setup 부속 명령은 kdb 토글을 나열하고 조작합니다.
f [+x|-x][tslot | eaddr] 현재 또는 지정된 스레드의 스택 추적을 표시합니다.
ctx [cpu] context 명령은 CPU에 대한 kdb 문맥으로 전환하는 데 사용됩니다. 인수가 없으면, kdb 명령은 현재 문맥 사용으로 리턴합니다.
cdt [cdt_number [cdt_entry]] cdt 명령은 구성요소 덤프 테이블(CDT)에 관한 정보를 표시하거나 덤프에 대한 구성요소 덤프 데이터를 열람하기 위해 사용됩니다.
메모리 표시 및 분해 부속 명령
d symb|eaddr [count] 바이트 형식으로 데이터를 표시합니다.
dw symb|eaddr [count] 단어 형식으로 데이터를 표시합니다.
dd symb|eaddr [count] 중복 단어 형식으로 데이터를 표시합니다.
dp paddr [count] 바이트 형식으로 데이터를 표시합니다.
dpw paddr [count] 단어 형식으로 데이터를 표시합니다.
dpd paddr [count] 중복 단어 형식으로 데이터를 표시합니다.
dc symb|eaddr [count] 분해된 명령을 표시합니다.
dpc paddr [count] 분해된 명령을 표시합니다.
dr [gp|sr|sp|reg_name] 레지스터를 표시합니다. 인수 gp는 일반 레지스터를 모두 표시하고, sr은 세그먼트 레지스터를 표시하며, sp는 특수 목적의 레지스터를 모두 표시합니다. 특정 레지스터는 이름으로 표시됩니다.
find [ -s] symb|eaddr pattern [mask [delta]] 패턴을 찾습니다. -s 옵션은 pattern이 16진 값이 아니라 문자열임을 나타냅니다.
findp [-s] paddr pattern [mask [delta]] 패턴을 찾습니다. -s 옵션은 pattern이 16진 값이 아니라 문자열임을 나타냅니다.
ext [-p] eaddr delta [size [count]] ext 부속 명령은 eaddr에서 시작하여 size 단어를 표시한 후 delta 단어씩 증분하여 size 단어를 다시 표시합니다. count 루프가 완료될 때까지 계속됩니다. -p 플래그는 delta가 증분 값이 아니라 다음 메모리 위치에 대한 포인터의 오프셋이라는 것을 표시합니다.
extp [-p] paddr delta [size [count]] ext 부속 명령은 eaddr에서 시작하여 size 단어를 표시한 후 delta 단어씩 증분하여 size 단어를 다시 표시합니다. count 루프가 완료될 때까지 계속됩니다. -p 플래그는 delta가 증분 값이 아니라 다음 메모리 위치에 대한 포인터의 오프셋이라는 것을 표시합니다.
기호 부속 명령
nm symb 기호를 유효 주소로 변환합니다.
ns ns 토글은 기호 변환을 사용가능/사용불가능하게 하는 데 사용됩니다.
ts eaddr 유효 주소를 기호로 변환합니다.
계산기 부속 명령
hcal hex_expr hcal 명령은 16진 값을 십진수로 변환하는 데 사용됩니다.
dcal decimal_expr dcal 명령은 십진 값을 16진수로 변환하는 데 사용됩니다.
기계 상태 부속 명령
stat 덤프 파일에 대한 상태 정보를 표시합니다.
switch [ [tslot|eaddr] | [u|k] ] 문맥 처리 정보를 특정 스레드나 사용자와 커널 주소 공간 사이로 전환합니다.
로더 부속 명령
lke [?] [-l] [slot|symb|eaddr] 로드된 확장자에 대한 정보를 표시합니다.
stbl [slot|symb|eaddr] 로드된 기호 테이블을 표시합니다.
rmst slot|symb|eaddr 기호 테이블을 제거합니다.
exp [symb] exp 명령은 반출된 기호 주소를 찾거나 반출 리스트를 표시하는 데 사용됩니다.
프로세스 부속 명령
ppda [*|cpu|symb|eaddr] 프로세서 데이터 영역별로 표시합니다.
intr [slot|symb|eaddr] 인터럽트 처리기 테이블을 표시합니다.
mst [tslot|symb|eaddr] 기계 상태 저장 영역(mst)을 표시합니다.
p [*| - | slot|symb|eaddr] 프로세스 테이블 항목을 표시합니다.
th [*| - | slot|symb| eaddr|-w state] 스레드 테이블 항목을 표시합니다.
ttid [tid] 스레드 테이블 항목에 대한 상세 데이터를 표시합니다.
tpid [pid] 특정 프로세스와 관련된 스레드에 대한 요약 정보를 표시합니다.
rq [bucket|symb|eaddr] 수행 대기행렬(run queue)을 표시합니다.
sq [bucket|symb|eaddr] 휴면 대기행렬(sleep queue)을 표시합니다.
lq [bucket|symb|eaddr] 잠금 대기행렬(lock queue)을 표시합니다.
u [-64][tslot|symb|eaddr] 스레드에 대한 사용자 블록을 표시합니다.
LVM 부속 명령
pbuf [*] symb|eaddr 물리적 버퍼 정보를 표시합니다.
volgrp symb|eaddr 볼륨 그룹 정보를 표시합니다.
pvol symb|eaddr 물리적 볼륨 정보를 표시합니다.
lvol symb|eaddr 논리적 볼륨 정보를 표시합니다.
SCSI 부속 명령
ascsi [slot|symb|eaddr] SCSI 어댑터 정보를 표시합니다.
vscsi [slot|symb|eaddr] 가상 SCSI 정보를 표시합니다.
scdisk [slot|symb| eaddr] SCSI 디스크 정보를 표시합니다.
메모리 할당 부속 명령
hp [symb|eaddr] 커널 힙 정보를 표시합니다.
xm [-?] 힙(기억장치) 디버그 정보를 표시합니다.
kmbucket [?] [-l] [-c cpu] [-i index][addr] 커널 메모리 할당자 버켓 정보를 표시합니다.
kmstats [symb|eaddr] 커널 할당자 메모리 통계를 표시합니다.
파일시스템 부속 명령
buf [slot|symb|eaddr] 버퍼 캐쉬 헤더를 표시합니다.
hb [bucket|symb|eaddr] 헤더의 버퍼 캐쉬 해시 리스트를 표시합니다.
fb [bucket|symb|eaddr] 헤더의 버퍼 캐쉬 사용가능 리스트를 표시합니다.
gno symb|eaddr 일반 노드 구조에 대한 데이터를 표시합니다.
gfs symb|eaddr 일반 파일시스템 구조에 대한 데이터를 표시합니다.
file [slot|symb|eaddr] 파일 테이블을 표시합니다.
ino [slot|symb|eaddr] i-노드 테이블을 표시합니다. 사용된 i-노드만 인쇄됩니다. 사용되지 않은 i-노드는 fino 부속 명령으로 인쇄될 수 있습니다.
hino [bucket|symb|eaddr] i-노드 해시 리스트를 표시합니다.
fino [slot|symb|eaddr] i-노드 (사용된 또는 사용되지 않은) 캐쉬 리스트 항목을 표시합니다.
rno symb|eaddr 원격 노드 구조에 대한 데이터를 표시합니다.
cku symb|eaddr 클라이언트 kudp 개별 구조에 대한 데이터를 표시합니다.
vno symb|eaddr 가상 노드 구조에 대한 데이터를 표시합니다.
vfs [slot|symb|eaddr] 가상 파일시스템 테이블의 데이터를 표시합니다.
specno symb|eaddr 특수 장치 노드 데이터를 표시합니다.
devno [slot|symb|eaddr] 장치 노드 테이블 정보를 표시합니다.
fifono [slot|symb|eaddr] 선입선출법 노드 테이블 정보를 표시합니다.
hno [bucket|symb|eaddr] 해시 노드 테이블 정보를 표시합니다.
시스템 테이블 부속 명령
var 기계의 var 구조와 시스템 구성설정을 표시합니다.
dev [symb|addr|major] 장치 교환 테이블을 표시합니다.
trb 타이머 요청 블록을 표시합니다.
slk [symb|eaddr] 단순 잠금에 대한 데이터를 표시합니다.
clk [symb|eaddr] 복합 잠금에 대한 데이터를 표시합니다.
ipl [*|cpu] 프로세서 정보 테이블 데이터를 표시합니다.
trace [-h] [hook[:subhook]]... [#data]... [-cchannel] 커널 추적 버퍼로부터 데이터를 표시합니다.
네트워크 부속 명령
ifnet 인터페이스 정보를 표시합니다.
tcb [slot|symb|eaddr] TCP 블록에 대한 데이터를 표시합니다.
udb [slot|symb|eaddr] UDP 블록에 대한 데이터를 표시합니다.
sock [tcp|udp] [symb|eaddr] 소켓 정보를 표시합니다.
sockinfo [ socket | inpcb | unpcb | rawcb | ribcb | tcpcb ] 소켓 정보를 유형과 주소별로 표시합니다.
tcpcb [tcp|udp] [symb|eaddr] TCP 제어 블록을 표시합니다.
mbuf [tcp|udp] [symb|eaddr] TCP/UDP 메세지 버퍼를 표시합니다.
VMM 부속 명령
vmker 가상 메모리 커널 데이터를 표시합니다.
rmap [*] [slot] 실제 주소 범위 맵핑 테이블을 표시합니다.
pfhdata 가상 메모리 제어 변수를 표시합니다.
vmstat 가상 메모리 통계를 표시합니다.
vmaddr 가상 메모리 제어 구조 주소를 표시합니다.
pdt [*] [slot] 페이징 장치 테이블을 표시합니다.
scb [selection] VMM 세그멘트 제어 블록을 표시합니다.
pft [selection] VMM 페이지 프레임 테이블 데이터를 표시합니다.
pte [selection] VMM 페이지 테이블 항목을 표시합니다.
pta [?] VMM PTA 세그멘트 정보를 표시합니다.
ste [-p pid] 64 비트 프로세스에 대한 세그먼트 테이블 항목 정보를 표시합니다.
sr64 [-p pid] [esid [count]] 64 비트 프로세스에 대한 세그멘트 레지스터를 표시합니다.
segst64 [-p pid] [-e esid] [-s flag] [fno|shm 64 비트 프로세스에 대한 세그먼트 상태 정보를 표시합니다.
apt [selection] 별명 페이지 테이블 정보를 표시합니다.
vmwait [symb|eaddr] VMM 대기 상태 정보를 표시합니다.
ames [selection] 지정된 프로세스에 대한 주소 맵을 표시합니다.
zproc VMM 제로 kproc에 대한 정보를 표시합니다.
vmlog 현재 VMM 오류 로그 항목을 표시합니다.
vrld VMM 재로드 xlate 테이블을 표시합니다. 이 정보는 VMM 재로드 교착상태를 방지하기 위해 SMP POWER PC에서만 사용됩니다.
ipc [selection] 프로세스간 통신 기능 정보를 표시합니다.
lka [slot|symb|eaddr] VMM 잠금 앵커 데이터를 표시합니다.
lkh [slot|symb|eaddr] VMM 잠금 해시 리스트 항목을 표시합니다.
lkw [slot|symb|eaddr] VMM 잠금 단어에 대한 정보를 표시합니다.
vmdmap [slot|symb|eaddr] VMM 디스크 맵 정보를 표시합니다.
vmlocks VMM 회전 잠금을 표시합니다.
예제
다음 예제는 kdb 명령에 대한 호출 옵션을 설명합니다.
1. 디폴트 시스템 이미지와 커널 이미지 파일로 kdb 명령을 호출하려면 다음을 입력하십시오.
kdb
kdb 프로그램은 (0)> 프롬프트를 리턴하고 부속 명령의 입력을 기다립니다.
2. /var/adm/ras/vmcore.0 덤프 파일과 /unix라는 UNIX 커널 파일을 사용하여 kdb 명령을 호출하려면 다음을 입력하십시오.
kdb /var/adm/ras/vmcore.0 /unix
kdb 프로그램은 (0)> 프롬프트를 리턴하고 부속 명령의 입력을 기다립니다.
다음 예제에서는 선택된 kdb 명령의 사용법을 설명합니다.
1. 교착상태 분석 부속 명령을 수행하려면 다음을 입력하십시오.
(0)> dla
2. vfs 테이블의 세 번째 항목을 표시하려면 다음을 입력하십시오.
(0)> vfs 3
3. v-노드 리스트를 표시하려면 다음을 입력하십시오.
(0)> vnode
파일
/usr/sbin/kdb kdb 명령이 들어 있습니다.
/dev/mem 디폴트 시스템 이미지 파일
/usr/lib/boot/unix 디폴트 커널 파일