Den Heap zur Laufzeit inspizieren. Mehr...
Datenstrukturen | |
| struct | mi_heap_area_t |
| Ein Bereich des Heap-Speichers enthält Blöcke einer einzelnen Größe. Mehr... | |
Typedefs | |
| typedef bool | mi_block_visit_fun(const mi_heap_t *heap, const mi_heap_area_t *area, void *block, size_t block_size, void *arg) |
| Besucherfunktion, die an mi_heap_visit_blocks() übergeben wird | |
Funktionen | |
| bool | mi_heap_contains_block (mi_heap_t *heap, const void *p) |
| Enthält ein Heap einen Zeiger auf einen zuvor zugewiesenen Block? | |
| bool | mi_heap_check_owned (mi_heap_t *heap, const void *p) |
| Prüft sicher, ob ein Zeiger Teil eines Heaps ist. | |
| bool | mi_check_owned (const void *p) |
| Prüft sicher, ob ein Zeiger Teil des Standard-Heaps dieses Threads ist. | |
| bool | mi_heap_visit_blocks (const mi_heap_t *heap, bool visit_all_blocks, mi_block_visit_fun *visitor, void *arg) |
| Besucht alle Bereiche und Blöcke in einem Heap. | |
| bool | mi_abandoned_visit_blocks (mi_subproc_id_t subproc_id, int heap_tag, bool visit_blocks, mi_block_visit_fun *visitor, void *arg) |
| Besucht alle Bereiche und Blöcke in verlassenen Heaps. | |
Den Heap zur Laufzeit inspizieren.
| struct mi_heap_area_t |
Ein Bereich des Heap-Speichers enthält Blöcke einer einzelnen Größe.
Die Bytes in freigegebenen Blöcken sind committed - used.
| typedef bool mi_block_visit_fun(const mi_heap_t *heap, const mi_heap_area_t *area, void *block, size_t block_size, void *arg) |
Besucherfunktion, die an mi_heap_visit_blocks() übergeben wird
Diese Funktion wird immer zuerst für jeden Bereich mit block als NULL Zeiger aufgerufen. Wenn visit_all_blocks true war, wird die Funktion anschließend für jeden zugewiesenen Block in diesem Bereich aufgerufen.
| bool mi_abandoned_visit_blocks | ( | mi_subproc_id_t | subproc_id, |
| int | heap_tag, | ||
| bool | visit_blocks, | ||
| mi_block_visit_fun * | visitor, | ||
| void * | arg ) |
Besucht alle Bereiche und Blöcke in verlassenen Heaps.
| subproc_id | Die Unterprozess-ID, die mit den verlassenen Heaps verbunden ist. |
| heap_tag | Besucht nur verlassene Speicherbereiche mit dem angegebenen Heap-Tag, verwenden Sie -1, um alle verlassenen Speicherbereiche zu besuchen. |
| visit_blocks | Wenn true, werden alle zugewiesenen Blöcke besucht, andernfalls wird visitor nur für jeden Heap-Bereich aufgerufen. |
| visitor | Diese Funktion wird für jeden Bereich im Heap aufgerufen (mit block als NULL). Wenn visit_all_blocks true ist, wird visitor auch für jeden zugewiesenen Block in jedem Bereich aufgerufen (mit block!=NULL). Geben Sie false aus dieser Funktion zurück, um den Besuch vorzeitig zu beenden. |
| arg | Zusätzliches Argument, das an den visitor übergeben wird. |
Hinweis: Erfordert, dass die Option mi_option_visit_abandoned zu Beginn des Programms gesetzt ist.
| bool mi_check_owned | ( | const void * | p | ) |
Prüft sicher, ob ein Zeiger Teil des Standard-Heaps dieses Threads ist.
| p | Beliebiger Zeiger – muss nicht zuvor von uns zugewiesen worden sein. |
Hinweis: Teure Funktion, linear in den Seiten des Heaps.
| bool mi_heap_check_owned | ( | mi_heap_t * | heap, |
| const void * | p ) |
Prüft sicher, ob ein Zeiger Teil eines Heaps ist.
| heap | Der Heap. |
| p | Beliebiger Zeiger – muss nicht zuvor von uns zugewiesen worden sein. |
Hinweis: Teure Funktion, linear in den Seiten des Heaps.
| bool mi_heap_contains_block | ( | mi_heap_t * | heap, |
| const void * | p ) |
Enthält ein Heap einen Zeiger auf einen zuvor zugewiesenen Block?
| heap | Der Heap. |
| p | Zeiger auf einen zuvor zugewiesenen Block (in einem beliebigen Heap) – darf kein beliebiger Zeiger sein! |
| bool mi_heap_visit_blocks | ( | const mi_heap_t * | heap, |
| bool | visit_all_blocks, | ||
| mi_block_visit_fun * | visitor, | ||
| void * | arg ) |
Besucht alle Bereiche und Blöcke in einem Heap.
| heap | Der zu besuchende Heap. |
| visit_all_blocks | Wenn true, werden alle zugewiesenen Blöcke besucht, andernfalls wird visitor nur für jeden Heap-Bereich aufgerufen. |
| visitor | Diese Funktion wird für jeden Bereich im Heap aufgerufen (mit block als NULL). Wenn visit_all_blocks true ist, wird visitor auch für jeden zugewiesenen Block in jedem Bereich aufgerufen (mit block!=NULL). Geben Sie false aus dieser Funktion zurück, um den Besuch vorzeitig zu beenden. |
| arg | Zusätzliches Argument, das an den visitor übergeben wird. |