2012-04-23 2 views
3

누출을 추적하기 위해 일부 사용자 모드 메모리 덤프를 분석 중이며 누출에 대해 일부 접근 할 수 있지만 계속 볼 수 있습니다. ! heap -flt s xx 명령을 실행하면 이러한 덤프 항목이 생깁니다.무엇을할까요? XXX! yyyyyyyyyy + zzz의 의미는! heap -flt s 출력

14a8bd58 0006 0006 [07] 14a8bd60 00018 - (busy) 
    14a8bd88 0006 0006 [07] 14a8bd90 00018 - (busy) 
    14a8bdf8 0006 0006 [07] 14a8be00 00018 - (busy) 
    14a8bf48 0006 0006 [07] 14a8bf50 00018 - (busy) 
     ? SomeModule!SomeFunction+1bdf4 

은 내가

14a8bd58 0006 0006 [07] 14a8bd60 00018 - (busy) 

라인이 무엇인지 얻을,하지만 난 정말 라인

 ? SomeModule!SomeFunction+1bdf4 

정말 무슨 뜻인지 모르겠어요. 이러한 덤프는 힙 추적을 위해 + ust 플래그로 캡처되었습니다.

답변

4

이들은 기호 정보를 제공하여 독자가 소스의 해당 부분을보다 유용하게 찾을 수있게합니다.

Windows에서 프로세스의 가상 주소 공간은 일련의 모듈로 채워집니다. 각 모듈은 기본 주소와 크기로 구성됩니다. 이 정보가 표시되는 또 다른 방법은 Module + Relative Offset입니다.

모듈에는 기능이 포함될 수 있습니다. 기호 테이블이 손상되지 않은 경우 모듈에 대한 상대 오프셋과 이러한 함수의 크기를 찾을 수 있습니다. 덤프는 단순히 사람이 읽을 수있는 형식으로이 정보를 표시합니다.

3

SomeModule은 실행 모듈의 이름입니다.

SomeFunction은 실행중인 해당 모듈에서 내 보낸 함수의 이름입니다.

+1bdf4은 그 기능의 시작부터 16 진수로 오프셋됩니다.

오프셋 값이 매우 큰 경우 모듈의 기호 표가 누락되어 오프셋이 알려진 이름과 가장 가까운 함수, 일반적으로 내 보낸 함수를 기준으로 표시 될 수 있습니다.

+0

모듈은 EXE (DLL 아님)의 모듈 일 수도 있습니다. –

+0

고마워요, 바로 잡을 게요. – Andrey

관련 문제