我在运行基于dpdk的应用程序时遇到了一些错误。我发现错误发生在调用dpdk库提供的rte_eth_dev_configure()函数时。错误代码为-22。但是,我希望应用程序显示更多的调试信息,以便我可以快速关注错误部分。我做了RTFM,修改了$RTE_SDK/build/.config。我把RTE_LIBRTE_ETHDEV_DEBUG变成了y。但是它不起作用。rte_vlog()函数把日志消息放在哪里?你愿意帮助我吗?任何建议都很感激!
rte_eth_dev_configure()
$RTE_SDK/build/.config
RTE_LIBRTE_ETHDEV_DEBUG
y
rte_vlog()
bq3bfh9z1#
您还应该更改默认日志级别,否则所有调试消息将在编译期间编译出来,即:
RTE_LOG_LEVEL=RTE_LOG_DEBUG RTE_LIBRTE_ETHDEV_DEBUG=y
请看一下EXTRA_CFLAGS。您可能还想添加调试符号并禁用优化,即:
EXTRA_CFLAGS
make EXTRA_CFLAGS="-O0 -g" ...
vql8enpb2#
我将CONFIG_ RTE_LIBRTE_ETHDEV_DEBUG=y添加到${RTE_SDK}/config/defconfig_{RTE_TARGET}配置文件中并重建目标。它可以工作。
CONFIG_ RTE_LIBRTE_ETHDEV_DEBUG=y
${RTE_SDK}/config/defconfig_{RTE_TARGET}
7hiiyaii3#
较新版本的DPDK具有以下调试机制:
将"--log-level=lib.eal:debug"参数传递给rte_eal_init(),参见https://doc.dpdk.org/guides/linux_gsg/linux_eal_parameters.html
"--log-level=lib.eal:debug"
rte_eal_init()
在config/rte_config.h中替换
config/rte_config.h
#define RTE_LOG_DP_LEVEL RTE_LOG_INFO
与
#define RTE_LOG_DP_LEVEL RTE_LOG_DEBUG
将-DRTE_LIBRTE_ETHDEV_DEBUG添加到构建中。
-DRTE_LIBRTE_ETHDEV_DEBUG
3条答案
按热度按时间bq3bfh9z1#
您还应该更改默认日志级别,否则所有调试消息将在编译期间编译出来,即:
请看一下
EXTRA_CFLAGS
。您可能还想添加调试符号并禁用优化,即:vql8enpb2#
我将
CONFIG_ RTE_LIBRTE_ETHDEV_DEBUG=y
添加到${RTE_SDK}/config/defconfig_{RTE_TARGET}
配置文件中并重建目标。它可以工作。7hiiyaii3#
较新版本的DPDK具有以下调试机制:
每组件调试日志
将
"--log-level=lib.eal:debug"
参数传递给rte_eal_init()
,参见https://doc.dpdk.org/guides/linux_gsg/linux_eal_parameters.html数据平面调试日志
在
config/rte_config.h
中替换与
日志数据检查和其他数据平面日志
将
-DRTE_LIBRTE_ETHDEV_DEBUG
添加到构建中。