assert: Use printf_sync() to ensure printing of assert / panic

Change-Id: Icc202e60445d9be1cdcd61176db5ed1704d583e7
This commit is contained in:
Harald Welte 2021-04-06 01:18:01 +02:00
parent c1033c8611
commit 0516464620
3 changed files with 16 additions and 2 deletions

View File

@ -89,7 +89,7 @@
/// \param condition Condition to verify. /// \param condition Condition to verify.
#define ASSERT(condition) { \ #define ASSERT(condition) { \
if (!(condition)) { \ if (!(condition)) { \
printf("-F- ASSERT: %s %s:%d\n\r", #condition, __BASE_FILE__, __LINE__); \ printf_sync("-F- ASSERT: %s %s:%d\n\r", #condition, __BASE_FILE__, __LINE__); \
while (1); \ while (1); \
} \ } \
} }

View File

@ -46,7 +46,7 @@ static osmo_panic_handler_t osmo_panic_handler = (void*)0;
__attribute__ ((format (printf, 1, 0))) __attribute__ ((format (printf, 1, 0)))
static void osmo_panic_default(const char *fmt, va_list args) static void osmo_panic_default(const char *fmt, va_list args)
{ {
vfprintf(stderr, fmt, args); vfprintf_sync(stderr, fmt, args);
osmo_generate_backtrace(); osmo_generate_backtrace();
assert(0); assert(0);
} }

View File

@ -13,6 +13,20 @@
#define PHONE_INT 2 #define PHONE_INT 2
#define PHONE_DATAOUT 3 #define PHONE_DATAOUT 3
/* stub for stdio */
signed int printf_sync(const char *pFormat, ...)
{
va_list ap;
signed int result;
va_start(ap, pFormat);
result = vprintf(pFormat, ap);
va_end(ap);
return result;
}
/*********************************************************************** /***********************************************************************
* stub functions required by card_emu.c * stub functions required by card_emu.c
***********************************************************************/ ***********************************************************************/