当前位置: 首页 > news >正文

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.lryc.cn/news/267517.html

相关文章:

  • Python爬虫---解析---BeautifulSoup
  • Argument list too long when copying files
  • configure
  • HOJ 项目部署-前端定制 默认勾选显示标签、 在线编辑器主题和字号大小修改、增加一言功能 题目AC后礼花绽放
  • Scikit-Learn线性回归(二)
  • 07 Vue3框架简介
  • 前端八股文(js篇)
  • windows+ubuntu离线安装翻译软件有道词典
  • DevC++ easyx实现视口编辑,在超过屏幕大小的地图上画点,与解决刮刮乐bug效果中理解C语言指针的意义
  • Kali Linux—借助 SET+MSF 进行网络钓鱼、生成木马、获主机shell、权限提升、远程监控、钓鱼邮件等完整渗透测试(一)
  • 时间与时间戳转换及android和ios对时间识别的区别
  • 飞天使-k8s知识点7-kubernetes升级
  • 【Unity游戏制作】游戏模型导入之前需要注意的三个基本点
  • 三列布局 css
  • Android开发之生命周期(App、Activity)
  • 利用html2Canvas将表格下载为html
  • 《Git快速入门》Git分支
  • HarmonyOS应用性能与功耗云测试
  • 【AI】人工智能本地环境集成安装
  • 主流级显卡的新选择,Sparkle(撼与科技)Intel Arc A750兽人体验分享
  • BI 商业数据分析能够给企业带来什么改变?
  • 模式识别与机器学习-特征选择和提取
  • 嵌入式——RTC闹钟Alarm
  • 【linux】线程控制
  • Swift学习笔记第三节:Set类型
  • 【前端】安装指定版本的nodejs
  • 多商户小程序开源商城源码 打造微信商城新零售网店
  • 云仓酒庄的品牌雷盛红酒LEESON分享干红是纯葡萄酿造的吗?
  • PHP函数学习总结
  • 5G RedCap:轻量5G技术的新宠