第一步是要编译出debug版本的dpdk.
如何下载和编译,这里我不讲了。我们只讲debug
https://doc.dpdk.org/guides/prog_guide/build-sdk-meson.html
meson setup --buildtype=debug debugbuild
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了。困惑的同仁们。