3cd73a1a1c
The option RTE_EAL_ALWAYS_PANIC_ON_ERROR was off by default, and not customizable with meson. It is completely removed. The function rte_dump_registers is a trace of the bare metal support era, and was not supported in userland. It is completely removed. Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Ray Kinsella <mdr@ashroe.eu> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Kevin Traynor <ktraynor@redhat.com> Acked-by: David Marchand <david.marchand@redhat.com>
76 lines
1.8 KiB
C
76 lines
1.8 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2010-2014 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _RTE_DEBUG_H_
|
|
#define _RTE_DEBUG_H_
|
|
|
|
/**
|
|
* @file
|
|
*
|
|
* Debug Functions in RTE
|
|
*
|
|
* This file defines a generic API for debug operations. Part of
|
|
* the implementation is architecture-specific.
|
|
*/
|
|
|
|
#include "rte_log.h"
|
|
#include "rte_branch_prediction.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* Dump the stack of the calling core to the console.
|
|
*/
|
|
void rte_dump_stack(void);
|
|
|
|
/**
|
|
* Provide notification of a critical non-recoverable error and terminate
|
|
* execution abnormally.
|
|
*
|
|
* Display the format string and its expanded arguments (printf-like).
|
|
*
|
|
* In a linux environment, this function dumps the stack and calls
|
|
* abort() resulting in a core dump if enabled.
|
|
*
|
|
* The function never returns.
|
|
*
|
|
* @param ...
|
|
* The format string, followed by the variable list of arguments.
|
|
*/
|
|
#define rte_panic(...) rte_panic_(__func__, __VA_ARGS__, "dummy")
|
|
#define rte_panic_(func, format, ...) __rte_panic(func, format "%.0s", __VA_ARGS__)
|
|
|
|
#ifdef RTE_ENABLE_ASSERT
|
|
#define RTE_ASSERT(exp) RTE_VERIFY(exp)
|
|
#else
|
|
#define RTE_ASSERT(exp) do {} while (0)
|
|
#endif
|
|
#define RTE_VERIFY(exp) do { \
|
|
if (unlikely(!(exp))) \
|
|
rte_panic("line %d\tassert \"%s\" failed\n", __LINE__, #exp); \
|
|
} while (0)
|
|
|
|
/*
|
|
* Provide notification of a critical non-recoverable error and stop.
|
|
*
|
|
* This function should not be called directly. Refer to rte_panic() macro
|
|
* documentation.
|
|
*/
|
|
void __rte_panic(const char *funcname , const char *format, ...)
|
|
#ifdef __GNUC__
|
|
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2))
|
|
__rte_cold
|
|
#endif
|
|
#endif
|
|
__rte_noreturn
|
|
__rte_format_printf(2, 3);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _RTE_DEBUG_H_ */
|