2011-12-14 2 views
0

고객으로부터 높은 CPU 문제를 디버그하려고합니다. 나는 procdump를 사용하도록 노력했지만, 끝내지 않고 덤프를 작성하는 동안 중단됩니다. 대신 고객은 CPU 수준이 급상승 할 때 키보드를 사용하여 완전한 메모리 덤프를 시작했습니다.전체 메모리 덤프에 스택 정보가 누락되었습니다.

나는 모든 프로세스의 스레드에 대한 스택 추적을 볼 수 있기를 원하지만 어떤 스레드에 대해서도 상위 4-6 개의 스택 프레임을 볼 수 없다. 이러한 프레임은 버그 체크에 의해 시작된 트랩 루틴만을 포함하므로 실망합니다. WinDbg을 처음 사용하기 때문에이 정보를 수집하는 방법을 잘 모릅니다. 나는 다음을 수행하여 스택 정보를 받고 있어요 :

2: kd> !process 0 0 process.exe 
PROCESS 8997f590 SessionId: 0 Cid: 094c Peb: 7ffd6000 ParentCid: 01c4 
DirBase: 503f1000 ObjectTable: e53f1880 HandleCount: 1924. 
Image: process.exe 
2: kd> !process 8997f590 
PROCESS 8997f590 SessionId: 0 Cid: 094c Peb: 7ffd6000 ParentCid: 01c4 
DirBase: 503f1000 ObjectTable: e53f1880 HandleCount: 1924. 
[...] 
THREAD 89daf4f0 Cid 094c.0950 Teb: 7ffdf000 Win32Thread: e53f1ae0 WAIT: (Unknown) UserMode Non-Alertable 
8997f8ac NotificationEvent 
[...] 
ChildEBP RetAddr 
    b8cf9c04 8083d26e nt!KiSwapContext+0x26 (FPO: [Uses EBP] [0,0,4]) 
    b8cf9c30 8083dc5e nt!KiSwapThread+0x2e5 (FPO: [Non-Fpo]) 
    b8cf9c78 809208d7 nt!KeWaitForSingleObject+0x346 (FPO: [Non-Fpo]) 
    b8cf9ca0 8093aef7 nt!IopSynchronousServiceTail+0x180 (FPO: [Non-Fpo]) 
    b8cf9d38 8083387f nt!NtReadFile+0x5d5 (FPO: [Non-Fpo]) 
    b8cf9d38 7c82847c nt!KiFastCallEntry+0xfc (FPO: [0,0] TrapFrame @ b8cf9d64) 
WARNING: Frame IP not in any known module. Following frames may be wrong. 
    0012fc58 00000000 0x7c82847c 
[...] 

내가 예를 들어, 어떤 스레드의 컨텍스트로 전환하고 실행하는 경우, kb 50을 내가 여전히 상위 몇 프레임을 얻을 수 있습니다. 어쨌든 호출 스택의 나머지 부분을 가져올 수 있습니까? 이 정보가 디스크로 페이징 된 경우이 정보를 사용할 수 없습니까?

또한 높은 CPU 사용량을 디버깅하는 방법에 대한 유용한 정보가 도움이 될 것입니다.

답변

3

시도 :

!process 8997f590 1f 

이 문서에서 설명하는 데있어 문제 :

http://www.osronline.com/article.cfm?id=576

기본적으로, 전체 메모리 덤프는 많은 다른 프로세스 컨텍스트가 포함되어 있습니다. 사용자 모드 상태를 보려면 디버거가 올바른 프로세스 컨텍스트 (여기서는 0x10 플래그로 수행)를 사용하고 있는지 확인해야합니다.

높은 CPU 사용률을 디버깅한다는 측면에서! 프로세스 0 1은 각 프로세스의 사용자 및 커널 CPU 시간을 표시합니다. 특정 프로세스 세트가 급상승하는 경우 출력에서 ​​명확해야합니다. 그러나 이것을 추적하는 더 좋은 대안은 아마도 xperf 일 것입니다. xperf는 일정 기간 동안 CPU를 샘플링합니다 (여기있는 것처럼 스냅 샷을 정시에 보는 대신).

-scott

+0

감사합니다. – ReferentiallySeethru

관련 문제