DPDK单步跟踪(2)-如何编译debug版

2023-12-22 12:46:51

第一步是要编译出debug版本的dpdk.

如何下载和编译,这里我不讲了。我们只讲debug

https://doc.dpdk.org/guides/prog_guide/build-sdk-meson.html

setup

meson setup --buildtype=debug debugbuild

config

meson configure -Dbuildtype=debug
就是这么很简单。

例如:
你的工程叫
myproject
则变换为:
meson setup --buildtype=debug myproject
?meson configure -Dbuildtype=debug

当然,如果有自定义的参数,还要继承下来。

就是这么简单。
然后在根目录,检查一下:
build.nanja
是不是,在编译行,已经由O3改为-g
注意,一定是要有-g, 仅仅O0是不能单步跟踪的。
不要问我为什么,我也不清楚。

似乎是不优化,与将debug的信息,写入elf,之间,还有一点差别。
这点,以前我是遇到过的,那个工程没有 Og,只是O0,有一些行,是没有办法跟踪的。
也就是GCC,对于O0,也进行了优化。
我说不清楚是,说不知道是由于linker还是compiler

图我不粘了。请大家自己关注就可以了。不仅是编译行,还有下面的link行。都会不同。
编译出的输出,大小也不同。

然后,用这个刚刚帮好的debug版,来替代掉之前默认的。再重编你的工程。

注意注意注意:
这里我是用的静态库.a,我没试过动态库。
如果你用的是dll,so,多半要你自己研究了。

多说一句

网上许多人的都是改makefile,这个我的确不清楚。因为dpdk 早就采用meson 和nanji来编译了。
我是没找到makefile,上面的那个build.nanja,看来替代了makefile了。所以,我觉得我写本文是有意义的。
不要再找makefile了。困惑的同仁们。

文章来源:https://blog.csdn.net/haoyujie/article/details/135149727
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。