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

How can I enable debug mode in a dpdk-based application?

我在 运行 基于 dpdk 的应用程序时遇到一些错误。我发现调用 dpdk 库提供的 rte_eth_dev_configure() 函数时发生错误。错误代码是-22。但是,我希望应用程序显示更多调试信息,以便我可以快速关注错误部分。

我做了 RTFM 并修改了 $RTE_SDK/build/.config。我把 RTE_LIBRTE_ETHDEV_DEBUG 变成了 y。但它没有用。 rte_vlog() 函数将日志消息放在哪里?

你愿意帮助我吗?任何建议表示赞赏!

你也应该改变默认的日志级别,否则所有的调试消息都会在编译过程中编译出来,即:

RTE_LOG_LEVEL=RTE_LOG_DEBUG
RTE_LIBRTE_ETHDEV_DEBUG=y

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

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

我将 CONFIG_ RTE_LIBRTE_ETHDEV_DEBUG=y 添加到 ${RTE_SDK}/config/defconfig_{RTE_TARGET} 配置文件并重建目标。有效。