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

第一步是要编译出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了。困惑的同仁们。

补充一个示例

本例基于NXP的lsdk开发包
道理是一样的。

cd flexbuild_lsdk2108/components/apps/networking/dpdk   
如果没有dpdk代码目录,使用命令下载:source setup.env;flex-builder -c dpdk
patch -p1 < ../your_patch.patch
meson aarch64-build-gcc_debug --buildtype=debug --cross-file config/arm/arm64_armv8_linux_gcc
meson configure -Dprefix=~/dpdk_arm_libs_debug -D<your_params>=true -Dbuildtype=debug aarch64-build-gcc_debug
ninja -C aarch64-build-gcc_debug install

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MYSQL】-数据类型

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

微波射频元件厂商恒利泰授权世强硬创代理,实现滤波器国产替代

据机构数据显示&#xff0c;2018-2022年全球射频元件市场规模从50亿美元增长至150亿美元&#xff0c;平均复合增长率为31.6%&#xff0c;预计到2025年市场规模有望超过302亿美元。其中&#xff0c;滤波器是射频前端各领域产值占比最高的产品。 为扩大产品覆盖率&#xff0c;提…

【密码学】使用mkcert安装CA、自签名ssl证书,配置nginx的https 证书笔记

文章目录 证书&#xff08;CA证书&#xff0c;服务端证书&#xff0c;客户端证书&#xff09;1 安装CA1.1 下载mkcert1.2 mkcert安装和配置根证书1.3设备安装根证书 2 自签名ssl证书2.1 CA 证书过程:2.2 自签名流程2.3签发证书2.4给已有的证书请求&#xff08;.csr&#xff09;…

C/C++工程中错误码定义总结

本文结合实际经验&#xff0c;参考ros2 rclcpp库中错误码定义及使用方式&#xff0c;梳理了一种基于C或C开发的接口下错误码的定义及处理方式。{本文不涉及跨系统、跨服务的定义} 1.错误码如何定义&#xff1f; 系统一般是按模块划分的&#xff0c;模块与模块之间通过调用与被…

PMP证书的PDU如何获得?

首先&#xff0c;让我们来了解一下PDU的含义。PDU代表专业发展单元&#xff08;Professional Development Unit&#xff09;&#xff0c;是指在获得认证后&#xff0c;您可以通过学习、授课或提供志愿服务来积累专业项目管理领域的学习时间。PDU以小时为单位计算&#xff0c;每…

idea 远程调试linux上的代码

背景介绍 开发过程中&#xff0c;我们经常会遇到部署的代码运行出问题、看日志由不是很直观、我们希望可以像调试本地代码一样去调试远程代码; IDEA提供了Remote工具,基于JVM的跨平台能力&#xff0c;我们可以远程调试部署的代码。 前提 保证远程和本地跑的代码是一致的 操…

音视频类App广告变现如何破局,最大化广告变现收益,让应用增收?

音视频App已然成为了我们日常获取、发布和交换信息的重要方式&#xff0c;在音视频行业不断的拓展中&#xff0c;用户的渗透率提升。 据数据显示&#xff0c;我国网络视听用户的规模已达9亿人次&#xff0c;网民使用率也突破了90%。庞大的市场规模和用户需求吸引了大批开发者和…

GBASE南大通用数据库提供的高可用负载均衡功能

GBASE南大通用GBase 8a ODBC 提供的高可用负载均衡功能是指&#xff0c;GBase 8a ODBC 会将客户 端请求的数据库集群连接平均分摊到集群所有可用的节点上。 GBASE南大通用数据库负载均衡的使用方法 GBASE南大通用GBase 8a ODBC 提供两种方式来使用高可用负载均衡。一种是配置数…

4. 行为模式 - 中介者模式

亦称&#xff1a; 调解人、控制器、Intermediary、Controller、Mediator 意图 中介者模式是一种行为设计模式&#xff0c; 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互&#xff0c; 迫使它们通过一个中介者对象进行合作。 问题 假如你有一个创建…

Linux ulimit配置

Linux ulimit配置 1. 简介 在Linux系统中&#xff0c;ulimit是一个强大的工具&#xff0c;用于控制用户进程可以使用的资源。然而&#xff0c;有时候我们可能会遇到需要关闭或者调整这些资源限制的情况&#xff0c;以满足特定需求。本文将介绍如何关闭Linux系统中的ulimit限制…

Java:打印当前线程的堆栈信息到错误流(error stream)

使用java.lang.Thread的静态方法dumpStack()&#xff0c;可以打印当前线程的堆栈信息到错误流&#xff08;error stream&#xff09;。 代码示例&#xff1a; package com.thb;public class Test5 {public static void main(String[] args) {Thread.dumpStack();}}运行输出&a…

Alpha突触核蛋白A53T 突变型PFF

Alpha 突触核蛋白A53T 突变型PFF Alpha 突触核蛋白 A53T PFFs (目录号 SPR-326) 在培养的原代大鼠神经元中诱导丝氨酸 129 磷酸化 培养基中 1 g/ml 超声处理的 StressMarq’s Alpha 突触核蛋白 A53T 突变 PFF&#xff08;目录号 SPR-326&#xff09; 可诱导原代大鼠神经元中 …

金融信贷场景的风险“要素”与主要“风险点”

目录 要素一:贷款对象 风险点1:为不具备主体资格或主体资格有瑕疵的借款人发放贷款 风险表现: 防控措施: 风险点2:向国家限控行业发放贷款 风险表现: 防控措施: 风险点3:受理不符合准入条件的客户申请 风险表现: 防控措施: 要素二:金额 风险点4:过渡授…

【已解决】使用fastjson返回给echarts的时候怎么不忽略null值?

问题复现&#xff1a; 在使用fastjson的将对象序列化成json字符串的时候&#xff0c;如果对象属性为null的话&#xff0c;会被忽略掉的。有时候&#xff0c;这些null值还是很有用的。比如我们在使用echarts的时候&#xff0c;返回给前端就不能因为null而忽略&#xff0c;如果忽…

二分查找法详解(6种变形)

前言 在之前的博客中&#xff0c;我给大家介绍了最基础的二分查找法&#xff08;没学的话点我点我&#xff01;&#xff09; 今天我将带大家学习二分法的六种变形如何使用&#xff0c;小伙伴们&#xff0c;快来开始今天的学习吧&#xff01; 文章目录 1&#xff0c;查找第一个…

求交错序列前N项和 C语言xdoj149

题目描述&#xff1a;编写程序&#xff0c;计算交错序列1-2/33/5-4/75/9-6/11…的前N项之和。 输入格式&#xff1a;输入一个正整数 输出格式&#xff1a;输出计算结果&#xff0c;结果保留三位小数 示例&#xff1a; 输入&#xff1a;5 输出&#xff1a;0.917 #include <st…

网络基础【网线的制作、OSI七层模型、集线器、交换机介绍、路由器的配置】

目录 一.网线的制作 1.1.网线的标准 1.2.水晶头的做法 二.OSI七层模型、集线器、交换机介绍 集线器&#xff08;Hub&#xff09;&#xff1a; 交换机&#xff08;Switch&#xff09;&#xff1a; 三.路由器的配置 3.1.使用 3.2.常用的功能介绍 1、如何管理路由器 2、家…

【Qt】tr(), qsTr()

1. 作用 Qt语言国际化&#xff0c;用户包裹需要翻译或转换的内容。 2. 区别 tr() : Qt C中使用qsTr() : QML中使用 3. 举例 3.1 Qt QString text tr("hello");3.2 QML Text {id: txt1;text: qsTr("Hello"); }

数据分析:小红书过节“仪式感”营销种草

导语 过年的氛围是越来越浓&#xff0c;走亲访友&#xff0c;过节送礼都准备起来&#xff01;据千瓜数据显示&#xff0c;“轻松买到仪式感”热度攀升&#xff0c;作为站内扶持的新兴话题&#xff0c;11月上线以来浏览量超2.5亿&#xff0c;笔记数超过20万篇。 看来&#xff…

Vue中转换HTML为PDF

1. 安装html2pdf.js库 npm install html2pdf.js2. 组件中引入html2pdf.js库 import html2pdf from html2pdf.js 3. 创建方法来处理HTML转PDF的逻辑 export default {methods: {convertHTMLToPDF() {const element document.getElementById(html-content); // 获取包含HTML…