debugging 如何在基于dpdk的应用程序中启用调试模式?

ct2axkht  于 2023-10-24  发布在  其他
关注(0)|答案(3)|浏览(154)

我在运行基于dpdk的应用程序时遇到了一些错误。我发现错误发生在调用dpdk库提供的rte_eth_dev_configure()函数时。错误代码为-22。但是,我希望应用程序显示更多的调试信息,以便我可以快速关注错误部分。
我做了RTFM,修改了$RTE_SDK/build/.config。我把RTE_LIBRTE_ETHDEV_DEBUG变成了y。但是它不起作用。rte_vlog()函数把日志消息放在哪里?
你愿意帮助我吗?任何建议都很感激!

bq3bfh9z

bq3bfh9z1#

您还应该更改默认日志级别,否则所有调试消息将在编译期间编译出来,即:

RTE_LOG_LEVEL=RTE_LOG_DEBUG
RTE_LIBRTE_ETHDEV_DEBUG=y

请看一下EXTRA_CFLAGS。您可能还想添加调试符号并禁用优化,即:

make EXTRA_CFLAGS="-O0 -g" ...
vql8enpb

vql8enpb2#

我将CONFIG_ RTE_LIBRTE_ETHDEV_DEBUG=y添加到${RTE_SDK}/config/defconfig_{RTE_TARGET}配置文件中并重建目标。它可以工作。

7hiiyaii

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中替换

#define RTE_LOG_DP_LEVEL RTE_LOG_INFO

#define RTE_LOG_DP_LEVEL RTE_LOG_DEBUG

日志数据检查和其他数据平面日志

-DRTE_LIBRTE_ETHDEV_DEBUG添加到构建中。

相关问题