DPDK单步跟踪(3)-如何利用visual studio 2019和visual gdb来单步调试dpdk

准备工作

因为时间的关系,我想到哪说到哪,可能没那么高的完成度。
但其实有心的人,看到这个标题,就关了本文自己能做了。
why和how to build debug version DPDK,见前两篇。这里我们准备开始。

首先,你有一台linux机器,ubuntu 还是centos均可。
然后装好vs2019或2022之类的新版本。
然后,有你需要调试的dpdk程序。
还有,在本地,有一套之前编译dpdk 的原码。编译时什么,这套原码就是什么样,当然这句是废话。

当然,在开始之前,我抱歉一下,因为我是用我们真正的工程来调的,所以,可能我没办法发所有的图。
但以后我会补上。

可以挑一个dpdk 例子,例如:
dpdk\examples\multi_process

网上也有helloworld的例子,如这位同仁的:
https://blog.csdn.net/qq_27071221/article/details/114988226

然后,第一篇中,我讲到我是因为要分析第二个secondary启动的dpdk 进程的问题,才进行这次跟踪的。
我的意思是说,如果你的程序,如果没出问题,你就不要折腾了。我这的确是有事情要处理。

假定你的工程

假定你的工程是基于CMake,并且编译和执行,都是基于一个linux shell的。
而且的工程是在arm开发板上能编译过的(注意,我的dpdk是在编译服务器交叉编译得到的)。
而且linked的 dpdk是debug版的(见前一篇)。
而且是静态link 的,因为我没有试动态的情况。大家自己尝试。

建立工程

装好visual gdb,然后如下图:继续但无需代码。
我知道大家都喜欢英文版的vs,但我不清楚我的装好后就是英文版本。最好装英文的,因为有问题到网上问的时候,时常对应不到自己的工具上。
在这里插入图片描述新建项目

在这里插入图片描述
给工程取个好名字,这点不要学我啊

在这里插入图片描述
之后的根据自己的需要
在这里插入图片描述
后面我就不一一抓图了,之后无非是选择targent机器
在这里插入图片描述
我们用的是双机调试。
原因是,目标程序是在targent上直接编译的。
你还可以选3机,如果你的arm机实在是资源特别少.
后面大家自己补充吧。
然后我们进入调试的环节。
不是我要分得这么多篇,因为的确我时间有限。
以后我可以会完善本文。
而且本文不是重点。
最后重点是单步调试。

后记:

在结束本文之前,我想说一下,有经济能力的还是买一套visual gdb。值得。
visual studio自带的,如果按百分制,微软的水平,在这件事上,只能得5分,不能再多了。
不是微软的不能用,但对你来说,投入产出比,应该是负值。
你要是花钱买了visual gdb,我认为是值得的。我会是买的。我的beyondcompare 就是买的。
这个我没买是的确支付方面,比较麻烦。
所以,我去北边国家的网站下了一个。

至于说微软的为什么差,这个我之前写过。
好的软件先定义“场景”Scenes,然后定义角色role,然后基于现有的资产,无缝地衔接。
这些微软都没有。我不想再批评微软,但这是事实。
对了,前面提到的完成度,这是我在看5分钟讲电影中学到的评价导演的话,让这里很合适。
微软不止是如Jobs所说,没有taste,这20年来,在完成度这个方面,微软很糟。

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

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

相关文章

二维码智慧门牌管理系统升级:安全与便捷并存

文章目录 前言一、系统升级与用户操作记录二、展望与智能门禁未来三、智能科技为未来铺路 前言 科技与门禁系统演进 随着科技的飞速发展,智能门牌系统成为建筑物不可或缺的一部分。其中,二维码智慧门牌管理系统以其独特优势逐渐受到关注。它不仅提升了出…

华为鸿蒙(HarmonyOS):连接一切,智慧无限

华为鸿蒙是一款全场景、分布式操作系统,旨在构建一个真正统一的硬件生态系统。该操作系统于2019年8月首次发布,并被设计为可以应用于各种设备,包括智能手机、智能手表、智能电视、车载系统等多种智能设备。 推荐一套最新版的鸿蒙4.0开发教程 …

构建创新学习体验:企业培训系统技术深度解析

企业培训系统在现代企业中发挥着越来越重要的作用,它不仅仅是传统培训的延伸,更是技术创新的结晶。本文将深入探讨企业培训系统的关键技术特点,并通过一些简单的代码示例,展示如何在实际项目中应用这些技术。 1. 前端技术&#…

MyBatis见解3

8.MyBatis的关联查询 8.3.一对多查询 需求:查询所有用户信息及用户关联的账户信息。 分析:用户信息和他的账户信息为一对多关系,并且查询过程中如果用户没有账户信息,此时也要将用户信息查询出来,此时左外连接查询比…

Java设计模式-原型模式

目录 一、克隆羊问题 二、传统方式解决 三、基本介绍 四、浅拷贝和深拷贝 (一)浅拷贝介绍 (二)深拷贝 五、原型模式深拷贝 (一)重写clone方法 (二)对象序列化 六、注意事项…

3D模型人物换装系统(二 优化材质球合批降低DrawCall)

3D模型人物换装系统 介绍原理合批材质对比没有合批材质核心代码完整代码修改总结 介绍 本文使用2018.4.4和2020.3.26进行的测试 本文没有考虑法线贴图合并的问题,因为生成法线贴图有点问题,放在下一篇文章解决在进行优化 如果这里不太明白换装的流程可以…

Ignite数据流处理

数据流处理 #1.概述 Ignite提供了一个数据流API,可用于将大量连续的数据流注入Ignite集群,数据流API支持容错和线性扩展,并为注入Ignite的数据提供了至少一次保证,这意味着每个条目至少会被处理一次。 数据通过与缓存关联的数据…

重学设计模式-Iterator(迭代器模式)

Iterator迭代器模式 介绍: 迭代器模式是一种行为型设计模式,它允许你在不暴露集合底层表示(并不知道集合底层使用何种方式对数据尽心存储)的情况下遍历集合中的元素。 这种模式提供了一种方法,可以顺序访问一个聚合…

java类和对象的思想概述

0.面向对象Object OOP——名人名言:类是写出来的,对象是new出来的 **> 学习面向对象的三条路线 java类以及类成员:(重点)类成员——属性、方法、构造器、(熟悉)代码块、内部类面向对象特征&…

文章解读与仿真程序复现思路——高电压技术EI\CSCD\北大核心《含CCUS和P2G的综合能源系统分布式鲁棒优化调度》

这个标题涉及到两个关键的能源技术领域,即CCUS(Carbon Capture, Utilization, and Storage,碳捕捉利用与储存)和P2G(Power-to-Gas,电力转化为气体)。同时,它提到了综合能源系统的分布…

Linux中文件权限

目录 一、文件类型 二、三字符的码,三重访问权限 三、chmod改变权限 3.1 八进制模式 3.2 符号模式 文件无权限,无法操作,有没有感觉很恼火呀? 下面来分析一下linux中的文件权限。 一、文件类型 - 代表文件 d 代表目录 l 代表…

EarMaster Pro 7 简体中文破解版 v7.2.0.42 电脑版

软件介绍 EarMaster破解版一款功能强大的专业级别多媒体音乐教育学习软件,EarMaster破解版提供了大量音乐相关的学习内容,用户在这里可以学习基础的和弦、音阶、节奏,也可以提升自己的音感,如果基础已经很扎实了,还可…