]> git.donarmstrong.com Git - qmk_firmware.git/blob - quantum/variable_trace.h
9899816f6cb1d8fbf439be1d7c94f040b021ff11
[qmk_firmware.git] / quantum / variable_trace.h
1 #ifndef VARIABLE_TRACE_H
2 #define VARIABLE_TRACE_H
3
4 #include "print.h"
5
6 #ifdef NUM_TRACED_VARIABLES
7
8 #define ADD_TRACED_VARIABLE(name, addr, size) \
9     add_traced_variable(PSTR(name), (void*)addr, size, PSTR(__FILE__), __LINE__)
10 #define REMOVE_TRACED_VARIABLE(name) remove_traced_variable(PSTR(name), PSTR(__FILE__), __LINE__)
11 #define VERIFY_TRACED_VARIABLES() verify_traced_variables(PSTR(__FILE__), __LINE__)
12
13 #else
14
15 #define ADD_TRACED_VARIABLE(name, addr, size)
16 #define REMOVE_TRACED_VARIABLE(name)
17 #define VERIFY_TRACED_VARIABLES()
18
19 #endif
20
21 // Don't call directly, use the macros instead
22 void add_traced_variable(const char* name, void* addr, unsigned size, const char* func, int line);
23 void remove_traced_variable(const char* name, const char* func, int line);
24 void verify_traced_variables(const char* func, int line);
25 #endif