[WinDbg Command]!error, .enable_long_status
블로그를 보다가 좋은 디버거 명령을 발견하였습니다. (!error, .enable_long_status)
첫번째 좋은 명령은 .enable_long_status 입니다.
아래와 같이 명령을 실행하면 우리가 NTSTATUS.H 에서 보는 형태의 에러 값을 볼 수 있습니다.
0:000> dt status
status = -1073741823
0:000> .enable_long_status 1
0:000> dt status
status = 0xC0000001
두번째 명령은 !error 입니다.
win32, winsock, NTSTATUS, NetAPI 의 Error code 값을 넣으면 Error 정보를 볼 수 있습니다.
Syntax
!error Value [Flags]
Parameters:
Value Specifies one of the following error codes:
Win32
Winsock
NTSTATUS
NetAPI
Flags 가 1 로 Set 되면 해당 error code 를 NTSTATUS 에서 읽어 옵니다.
Dump out the value as Win32
0:000> !error 1
Error code: (Win32) 0x1 (1) - Incorrect function.
Dump out the value as NTSTATUS
0:000> !error 1 1
Error code: (NTSTATUS) 0x1 - STATUS_WAIT_1
Dump out an NTSTATUS value that is not ambiguous with a Win32 value
0:000> !error c0000001
Error code: (NTSTATUS) 0xc0000001 (3221225473) - {Operation Failed} The requested operation was unsuccessful.