Skip to content

Commit 8292aff

Browse files
author
Cruz Monrreal
authored
Merge pull request #7609 from bremoran/patch-2
Make location meaningful in print_error_report
2 parents 639285a + 96fbd02 commit 8292aff

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

platform/mbed_error.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ static mbed_error_ctx first_error_ctx = {0};
5757
static mbed_error_ctx last_error_ctx = {0};
5858
static mbed_error_hook_t error_hook = NULL;
5959
static void print_error_report(mbed_error_ctx *ctx, const char *);
60-
static mbed_error_status_t handle_error(mbed_error_status_t error_status, unsigned int error_value, const char *filename, int line_number);
60+
static mbed_error_status_t handle_error(mbed_error_status_t error_status, unsigned int error_value, const char *filename, int line_number, void *caller);
6161

6262
//Helper function to halt the system
6363
static void mbed_halt_system(void)
@@ -82,7 +82,7 @@ WEAK void error(const char *format, ...)
8282
}
8383

8484
//Call handle_error/print_error_report permanently setting error_in_progress flag
85-
handle_error(MBED_ERROR_UNKNOWN, 0, NULL, 0);
85+
handle_error(MBED_ERROR_UNKNOWN, 0, NULL, 0, MBED_CALLER_ADDR());
8686
ERROR_REPORT(&last_error_ctx, "Fatal Run-time error");
8787
error_in_progress = 1;
8888

@@ -96,7 +96,7 @@ WEAK void error(const char *format, ...)
9696
}
9797

9898
//Set an error status with the error handling system
99-
static mbed_error_status_t handle_error(mbed_error_status_t error_status, unsigned int error_value, const char *filename, int line_number)
99+
static mbed_error_status_t handle_error(mbed_error_status_t error_status, unsigned int error_value, const char *filename, int line_number, void *caller)
100100
{
101101
mbed_error_ctx current_error_ctx;
102102

@@ -123,7 +123,7 @@ static mbed_error_status_t handle_error(mbed_error_status_t error_status, unsign
123123
memset(&current_error_ctx, sizeof(mbed_error_ctx), 0);
124124
//Capture error information
125125
current_error_ctx.error_status = error_status;
126-
current_error_ctx.error_address = (uint32_t)MBED_CALLER_ADDR();
126+
current_error_ctx.error_address = (uint32_t)caller;
127127
current_error_ctx.error_value = error_value;
128128
#ifdef MBED_CONF_RTOS_PRESENT
129129
//Capture thread info
@@ -193,14 +193,14 @@ int mbed_get_error_count(void)
193193
//Sets a fatal error
194194
mbed_error_status_t mbed_warning(mbed_error_status_t error_status, const char *error_msg, unsigned int error_value, const char *filename, int line_number)
195195
{
196-
return handle_error(error_status, error_value, filename, line_number);
196+
return handle_error(error_status, error_value, filename, line_number, MBED_CALLER_ADDR());
197197
}
198198

199199
//Sets a fatal error, this function is marked WEAK to be able to override this for some tests
200200
WEAK mbed_error_status_t mbed_error(mbed_error_status_t error_status, const char *error_msg, unsigned int error_value, const char *filename, int line_number)
201201
{
202202
//set the error reported and then halt the system
203-
if (MBED_SUCCESS != handle_error(error_status, error_value, filename, line_number)) {
203+
if (MBED_SUCCESS != handle_error(error_status, error_value, filename, line_number, MBED_CALLER_ADDR())) {
204204
return MBED_ERROR_FAILED_OPERATION;
205205
}
206206

0 commit comments

Comments
 (0)