4
! 내가 매달려에 대해 문의하고있어 명령 !heap -x -v hexadecimal_address
및 !heap -flt s size_of_block
모순 힙 -x -v 및 힙 -FLT의 나는 이상한 뭔가를 보여줍니다 덤프를 분석하고 있습니다
사이 contradiciton 것 같다 포인터. 이 덤프에서 이 허상 포인터는 우연히 :
-
: 0x0bdd00c0
내가이 경우, 즉 그 표시
Entry User Heap Segment Size PrevSize Unused Flags ----------------------------------------------------------------------------- 0bdd00b8 0bdd00c0 003b0000 0bc00000 98 20 8 busy
를 반환 !heap -x -v 0bdd00c0
사용하는 힙 메모리 블록에 대한 정보를 검색하려면
busy
모드입니다 (대개 다른 시간대의 다른 덤프 메모리는 여기에서 무료입니다)003b0000
내부에서 관리됩니다.나 한테 무슨 퍼즐 :
나는 !heap -flt s 98
가 (단지 크기가 동일 할 다른 개체를 관찰하고자하는) 실행하면 내 조사의 포인터 0bdd00c0를 표시하지 않습니다 이 결과를 얻을
HEAP_ENTRY Size Prev Flags UserPtr UserSize - state _HEAP @ 3b0000 14b24fa8 0014 0014 [01] 14b24fb0 00098 - (busy) 0bc645a8 0014 0014 [01] 0bc645b0 00098 - (busy) 0bc66398 0014 0014 [01] 0bc663a0 00098 - (busy) 0bcbedf8 0014 0014 [01] 0bcbee00 00098 - (busy) 0bce2cc8 0014 0014 [01] 0bce2cd0 00098 - (busy) 0bceff88 0014 0014 [00] 0bceff90 00098 - (free) 0bdf2f78 0014 0014 [01] 0bdf2f80 00098 - (busy) 0be28c50 0014 0014 [01] 0be28c58 00098 - (busy) 0be57470 0014 0014 [00] 0be57478 00098 - (free) 0beed050 0014 0014 [01] 0beed058 00098 - (busy) 0bf1aaf0 0014 0014 [00] 0bf1aaf8 00098 - (free) 0bf214c0 0014 0014 [00] 0bf214c8 00098 - (free) 0bf99bf0 0014 0014 [00] 0bf99bf8 00098 - (free)
는 (난 당신만을 힙 3b0000 관련 발췌했다)
그래서 나는 모순이있는 것으로 결론에 도달했습니다.
내가 잘못하고 있다고 가정합니까? 무엇이 잘못되었는지 이해하기 위해 무엇을 할 수 있습니까? 당신은 8 사용되지 않는 바이트를 간과