Skip to content

Commit

Permalink
heap_trace: unify API to pass caps param to heap_trace_dump()
Browse files Browse the repository at this point in the history
  • Loading branch information
SoucheSouche committed Dec 27, 2022
1 parent 9afc386 commit c39a9de
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 34 deletions.
7 changes: 1 addition & 6 deletions components/app_trace/heap_trace_tohost.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,7 @@ void heap_trace_dump(void)
return;
}

void heap_trace_dump_internal_ram(void)
{
return;
}

void heap_trace_dump_psram(void)
void heap_trace_dump_caps(__attribute__((unused)) const uint32_t caps)
{
return;
}
Expand Down
21 changes: 8 additions & 13 deletions components/heap/heap_trace_standalone.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "esp_attr.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_memory_utils.h"


#define STACK_DEPTH CONFIG_HEAP_TRACING_STACK_DEPTH
Expand Down Expand Up @@ -156,16 +157,12 @@ esp_err_t heap_trace_summary(heap_trace_summary_t *summary)
return ESP_OK;
}

void heap_trace_dump_internal_ram(void) {
heap_trace_dump_base(true, false);
void heap_trace_dump(void) {
heap_trace_dump_caps(MALLOC_CAP_INTERNAL | MALLOC_CAP_SPIRAM);
}

void heap_trace_dump_psram(void) {
heap_trace_dump_base(false, true);
}

void heap_trace_dump(void) {
heap_trace_dump_base(true, true);
void heap_trace_dump_caps(const uint32_t caps) {
heap_trace_dump_base(caps & MALLOC_CAP_INTERNAL, caps & MALLOC_CAP_SPIRAM);
}

static void heap_trace_dump_base(bool internal_ram, bool psram)
Expand Down Expand Up @@ -309,11 +306,9 @@ static IRAM_ATTR void record_free(void *p, void **callers)

/* search backwards for the allocation record matching this free */
int i = -1;
if (records.count > 0) {
for (i = records.count - 1; i >= 0; i--) {
if (records.buffer[i].address == p) {
break;
}
for (i = records.count - 1; i >= 0; i--) {
if (records.buffer[i].address == p) {
break;
}
}

Expand Down
21 changes: 6 additions & 15 deletions components/heap/include/esp_heap_trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,23 +155,14 @@ esp_err_t heap_trace_get(size_t index, heap_trace_record_t *record);
void heap_trace_dump(void);

/**
* @brief Same as heap_trace_dump() but will only log allocations in Internal-RAM
* @brief Dump heap trace from the memory of the capabilities passed as parameter.
*
* @note It is safe to call this function while heap tracing is
* running, however in HEAP_TRACE_LEAK mode the dump may skip
* entries unless heap tracing is stopped first.
* @param caps Capability(ies) of the memory from which to dump the trace.
* Set MALLOC_CAP_INTERNAL to dump heap trace data from internal memory.
* Set MALLOC_CAP_SPIRAM to dump heap trace data from PSRAM.
* Set both to dump both heap trace data.
*/
void heap_trace_dump_internal_ram(void);

/**
* @brief Same as heap_trace_dump() but will only log allocations in PSRAM
*
* @note It is safe to call this function while heap tracing is
* running, however in HEAP_TRACE_LEAK mode the dump may skip
* entries unless heap tracing is stopped first.
*/
void heap_trace_dump_psram(void);

void heap_trace_dump_caps(const uint32_t caps);

/**
* @brief Get summary information about the result of a heap trace
Expand Down

0 comments on commit c39a9de

Please sign in to comment.