adb 디버깅에서 디렉토리 및 i-node 덤프 예제

이 예제에서는 adb 스크립트를 작성하여 파일 시스템의 디렉토리 및 i-node 맵의 내용을 표시하는 방법을 표시합니다. 이 예제에서는 디렉토리 이름이 dir로 지정되고 다양한 파일이 포함됩니다.

파일 시스템은 사용자가 읽는 데 권한을 가지는 /dev/hd3 장치 파일(/tmp)과 연관되어 있습니다.

디렉토리를 표시하려면 해당 스크립트를 작성하십시오. 일반적으로 디렉토리에는 하나 이상의 항목이 들어 있습니다. 각 항목은 부호 없는 i-node 번호(i-number)와 14자 파일 이름으로 구성됩니다. 스크립트 파일에 명령을 포함시켜 이 정보를 표시할 수 있습니다. adb 디버그 프로그램에서는 오브젝트 파일이 xcoff 형식 파일인 것으로 예상합니다. 이것은 디렉토리에 해당하는 경우는 아닙니다. Adb 프로그램은 디렉터리가 xcoff 형식 파일이 아니므로 텍스트 길이가 0이라고 표시합니다. M 명령을 사용하여 이 디렉터리의 텍스트 길이가 0보다 크다는 것을 adb 프로그램에 표시합니다. 따라서 다음을 입력하여 광고 세션에 항목을 표시합니다:

,0?m 360 0

예를 들어, 다음 명령은 i-node 번호와 파일 이름을 탭으로 구분하여 처음 20개 항목을 표시합니다.

0,20?ut14cn

두 번째 숫자는 변경할 수 있습니다,20를 사용하여 디렉터리에 있는 항목 수를 지정합니다. 다음 명령을 스크립트의 시작 부분에 배치한 경우, adb 프로그램이 각 숫자 열에 대한 표제로 문자열을 표시합니다.

="inumber"8t"Name"

스크립트 파일을 작성했으면 디렉토리의 이름을 사용하여 adb 프로그램을 시작할 때 이 파일을 입력으로 방향 재지정하십시오. 예를 들어 다음 명령은 다음 명령어는 geo디렉터리에서 명령 입력을 사용하여ddump스크립트 파일입니다:

adb geo - <ddump

빼기 부호(-)는 adb 프로그램이 코어 파일을 열지 못하도록 합니다. adb 프로그램은 스크립트 파일에서 명령을 읽습니다.

파일 시스템의 i-node 테이블을 표시하려면 새 스크립트를 작성한 다음 파일 시스템과 연관된 장치의 파일 이름으로 adb 프로그램을 시작하십시오. 파일 시스템의 i-node 테이블은 복합 구조를 가집니다. 각 항목은 다음을 포함합니다.

  • 상태 플래그의 단어 값
  • 번호 링크의 바이트 값
  • 사용자 및 그룹 ID의 2바이트 값
  • 크기에 대한 바이트 및 단어 값
  • 파일 블록 디스크에 있는 위치의 8단어 값
  • 작성 및 수정 날짜에 대한 2단어 값

다음은 디렉토리 덤프 출력 예제입니다.

        inumber Name
0:       26    .
        2     ..
        27    .estate
        28    adbsamp
        29    adbsamp.c
        30    calc.lex
        31    calc.yacc
        32    cbtest
        68    .profile
        66    .profile.bak
        46    adbsamp2.c
        52    adbsamp2
        35    adbsamp.s
        34    adbsamp2.s
        48    forktst1.c
        49    forktst2.c
        50    forktst3.c
        51    lpp&us1.name
        33    adbsamp3.c
        241   sample
        198   adbsamp3
        55    msgqtst.c
        56    newsig.c

i-node 테이블은 주소 02000에서 시작합니다. 스크립트 파일에 다음 명령을 삽입하여 첫 번째 항목을 표시할 수 있습니다.

02000,-1?on3bnbrdn8un2Y2na

명령은 출력 표시에 여러 줄 바꾸기 문자를 지정하여 읽기 수월하게 합니다.

스크립트 파일을 /dev/hd3 파일의 i-node 테이블과 함께 사용하려면 다음 명령을 입력하십시오.

adb /dev/hd3 - <script

표시의 각 항목은 다음 양식을 가집니다.

02000: 073145
    0163 0164 0141
    0162 10356
    28770 8236 25956 27766 25455 8236 25956 25206
    1976 Feb 5 08:34:56 1975 Dec 28 10:55:15