سؤال

أرى إخراج مثل هذا في ملف DMP الخاص بي:

Heap entries for Segment00 in Heap 00150000
    00150640: 00640 . 00040 [01] - busy (40)
    00150680: 00040 . 01808 [01] - busy (1800)
    00151e88: 01808 . 00210 [01] - busy (208)
    00152098: 00210 . 00228 [00]
    001522c0: 00228 . 00030 [01] - busy (22)
    001522f0: 00030 . 00018 [01] - busy (10)
    00152308: 00018 . 00048 [01] - busy (3c)

تقول مستندات Windbg هذا:

    Heap entries for Segment00 in Heap 250000
                        0x01 - HEAP_ENTRY_BUSY            
                        0x02 - HEAP_ENTRY_EXTRA_PRESENT   
                        0x04 - HEAP_ENTRY_FILL_PATTERN    
                        0x08 - HEAP_ENTRY_VIRTUAL_ALLOC   
                        0x10 - HEAP_ENTRY_LAST_ENTRY      
                        0x20 - HEAP_ENTRY_SETTABLE_FLAG1  
                        0x40 - HEAP_ENTRY_SETTABLE_FLAG2  
Entry     Prev    Cur   0x80 - HEAP_ENTRY_SETTABLE_FLAG3  

Address   Size    Size  flags       (Bytes used)    (Tag name)
00250000: 00000 . 00b90 [01] - busy (b90)
00250b90: 00b90 . 00038 [01] - busy (38) 
00250bc8: 00038 . 00040 [07] - busy (24), tail fill (NTDLL!LDR Database)

التباعد غريب في المستندات رغم ذلك. هل هذا يعني "عنوان الإدخال" و "الحجم السابق" و "حجم المنحنى" ، أم أن "الإدخال" السابق "و" cur "ليس للخط أدناه؟

ماذا يعني "الحجم السابق" و "حجم المنحنى"؟ خاصة فيما يتعلق بـ "البايتات المستخدمة". ما هو الفرق بين "البايتات المستخدمة" و "حجم منحنى"؟

هل كانت مفيدة؟

المحلول

جزء الكومة هو كتلة مستمرة من الذاكرة لكومة معينة. كما أنها سلسلة من إدخالات الكومة.

للسير في قائمة من إدخالات الكومة للأمام ، يمكننا استخدام حجم CUR باعتباره إزاحة للوصول إلى إدخال الكومة التالي.

للسير في قائمة من إدخالات الكومة للخلف ، يمكننا استخدام حجم PRED كإزاحة للوصول إلى بداية الإدخال السابق.

هنا (الصورة أدناه) يمكنك رؤية Psize (الحجم السابق) وعلاقته بالحجم (الحجم الحالي) للإدخال قبل ذلك.

Debugger Output Pic

يتم حساب البايتات المستخدمة عن طريق طرح الحجم من عدد البايتات غير المستخدمة في نهاية هذه الكتلة التي لم يتم تخصيصها بالفعل. يتيح لك ذلك تحديد حجم التخصيص الذي تم طلبه قبل تقريب الحجم المطلوب لتخصيص التفاصيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top