'2014/11'에 해당되는 글 2건
- 2014.11.06 메모리 dump 분석 예 ( 정확하지 않음 )
- 2014.11.06 Windbg 명령어 & 설치
메모리 dump 분석 예 ( 정확하지 않음 )
1. 메모리 덤프를 crash dump 파일 방식으로 실행 합니다.
2. 명령 창에 관련 symbols 파일을 받습니다. ( 파일 열어 보면 명령창 입력 하는 부분이 있습니다. )
sympath srv*C:\PublicSymbols*http://msdl.microsoft.com/download/symbols; <- C 밑에 받게 설정.
3. Symbols 파일을 내려 받습니다.
.reload /f sqlservr.exe ß-- sql 지정해 주지 않으면 모든 실행파일에 대한 것 받습니다 오래 걸립니다. 허나 제 컴이 2012만 설치되어 있어서 서버 버전과 같은 sql이 있어야 할 것 같은 느낌 입니다.
4. 문제되는 스래드 를 파악 해 봅니다. ^^
~~[스래드번호]s
아래 노란색이 스래드 번호 입니다.
2014-10-31 07:07:06.960 서버 Process 0:0:0 (0x3318) Worker 0x000000002A7EA1A0 appears to be non-yielding on Scheduler 22. Thread creation time: 13059177216471. Approx Thread CPU Used: kernel 0 ms, user 70543 ms. Process Utilization 30%. System Idle 68%.
5. 자세한 내역을 봅니다.
kL100
15번 파일을 그런 단계로 본 내역입니다. Call site 값으로 세부적으로 뭔가 봐야 하는데 그 다음 명령을 모르겠습니다.
6. 참고로
.cxr sqlservr!CXStmtQuery::ErsqExecuteQuery+0x602 이 노란색이 call site 값인 것 같은데요..
7. 아래 부분 처럼
du 0x00000101`c21ae200 L100 이게 쿼리 내역을 보는 법인 것 같습니다. RetAddr 값 일까요??? ㅋㅋ.
답변 받은 분도 명령창 번호가 같은걸로 봐서는 15번 덤프 파일을 가지고 분석 했습니다
참고로 ) 여러가지 원인이 있다는 Non-yielding Scheduler dump 내역 입니다.
http://technet.microsoft.com/en-us/library/cc917684.aspx#XSLTsection129121120120
'ETC' 카테고리의 다른 글
MS-SQL 2016 New Features (0) | 2017.02.24 |
---|---|
SQL Server 2012 Certification upgrade info (0) | 2015.05.20 |
Windbg 명령어 & 설치 (0) | 2014.11.06 |
Window 서비스 등록/삭제 방법 (0) | 2011.10.20 |
Windbg 명령어 & 설치
Command | option | usage | Desc |
종료 | |||
q | 디버깅 종료 | ||
qd | 디버깅 종료;연결해제 | ||
디버깅 환경정보 | |||
vertarget | 타겟 컴퓨터 정보 표시 | ||
version | 디버그 환경 정보 표시 | ||
.lastevent | 마지막 디버그 이벤트 정보 표시 | ||
|| | 디버깅 세션 정보 표시 | ||
sumble & sorurce | |||
.symfix | MS 심볼경로 설정 | ||
.sympath | 심볼경로 확인/설정 | ||
.sym noisy | 심볼파일 검색 과정을 출력 | ||
.srcpath | 소스경로 설정 | ||
.srcnoisy | .srcnoisy 1 | 소스경로 검색 과정을 출력 | |
모듈 | |||
lm | l | 로드된 모듈만 표시 | |
m [pattern] | 패턴과 일치되는 모듈만 표시 | ||
v | 모듈 상세정보 표시 | ||
!lmi | !lmi ntdll.dll | 모듈 상세정보 표시 | |
.reload | /f [m_name] | 심볼을 즉시 로드 | |
x | X ntdll!* X *!*abc* | /v /t /n | 심볼 타입을 표시. 데이터 타입을 표시 이름순으로 정렬 |
ln | ln [address] | 해당 주소에 근접한 심볼의 정보 표시 | |
레지스터 | |||
r | 레지스터 정보 표시 | ||
r $proc | 현재 프로세스의 PEB주소( user-mode) 현재 프로세스의 EPROcESS주소( kernel-mode) | ||
r $thread | 현재 스레드의 TEB주소( user-mode) 현재 스레드의 ETHREAD주소( kernel-mode) | ||
r $tpid | 현재 프로세스ID(PID) | ||
r $tid | 현재 스레드ID(TID) | ||
언어셈블 | |||
u | f b | 언어셈블 언어셈블(함수전체) 언어셈블(ip이전의8개 명령어) | |
콜스택 | |||
k | [n] p b n v f | 콜스택 정보표시 함수정보 출력 인자표시 프레임번호 FPO정보 표시 스택 사용량 표시 | |
break point | |||
bp | bp 0x123456 | bp 설정 | |
bl | bp 리스트 출력 | ||
bc | bc * | [frame_no] | bp 삭제 | |
bd,be | bc * | [frame_no] | bp disable/enable | |
bm | bm notepad!*Win* | 패턴과 일치하는 모든심볼에 bp설정 | |
bu | bu aaa!bbb | 로드되지 않은 심볼에 대한 bp설정 | |
ba | 특정 주소에 access시 bp | ||
지역변수 | |||
dv | dv modulr!test* | /i /V | 심볼유형과 인자유형 표시 변수저장 위치 표시( register or address ) |
데이터유형 | |||
dt | df _EPROCESS 0xaddr | 주소를 특정 데이터 형으로 변환해서 표시 | |
du | Unicode string 표시 | ||
da | Ansi string 표시 | ||
dc | |||
db | |||
dy | |||
!address | !address !address [address] | ||
프로세스 & 스레드 정보 | |||
!peb | PEB(Process Environment Block)표시 | ||
!teb | TEB(Thread Environment Block) 표시 | ||
!gle | API의 마지막 에러코드 표시 | ||
실행 제어 | |||
t | Trace | ||
~.t | 다른 스레드를 중지시킨 상태에서 하나의statementt 실행 | ||
g | |||
p | Step Over | ||
gu | gu ~0 gu | 현재함수가 복귀할 때 까지 실행 스레드 0을 제외한 모든 스레드를freeze함 | |
wt | 내부에서 호출된 함수와 함수호출 횟수등의 정보 표시 | ||
.cxr | 컨텍스트 변경 | ||
!ready | |||
.thread | |||
!thread | |||
.trap | |||
.process | |||
!process | |||
ed | |||
eb | eb .-6 90 90 90 90 90 90 | 6byte를NOP(0x90)으로 변경 | |
!error | !error [error code] | 에러코드 정보표시 |
'ETC' 카테고리의 다른 글
SQL Server 2012 Certification upgrade info (0) | 2015.05.20 |
---|---|
메모리 dump 분석 예 ( 정확하지 않음 ) (0) | 2014.11.06 |
Window 서비스 등록/삭제 방법 (0) | 2011.10.20 |
Admin::Superdome VS DL580 G7 (0) | 2011.01.10 |