硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1897|回复: 13
收起左侧

[VS Code] 用VSCode开发的朋友们,你们的调试功能用的顺手吗?

[复制链接]

3

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2024-5-24 16:26:19 | 显示全部楼层 |阅读模式
平常使用MDK这些,调试不说顺手,至少也够用,一般不会出岔子

最近项目需要用了nordic家的nrf52系列芯片,nordic现在已经全面转向开源的那一套工具链了,Zephyr RTOS,CMake编译,必须配JLink来用,VSCode作为官方的IDE

发现VSCode的调试功能真的好难用啊,C语言没法跟汇编联动,startup这些汇编文件没法查看地址等功能缺失都不说了,居然这个调试的GDB老是崩溃,进入Debug后什么操作都不操作,放着在那里都会崩溃

经常“ERROR: GDB exited unexpectedly with exit code 139 (0x8B).”“Unable to step in. Operation failed with error code 0x80004004.”

不知道是VSCode的问题还是gdb的问题还是JLink的问题,朋友们你们平常用这一套会遇到这种bug吗?


回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-5-24 18:01:15 | 显示全部楼层
发现没按预期的执行,想暂停CPU查看CPU跑到哪去了,居然暂停后找不到cpu了
人工在gdb输入info registers也没法查看
感觉这锅gdb大一点
2024-05-24_18-00.png
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-5-24 18:45:30 | 显示全部楼层
如果是同样身陷痛苦之中的兄弟,可以看看Ozone,一样是跨平台的,调试功能还是比较可以的,比VSCode好用的多
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117520
QQ
发表于 2024-5-25 08:02:33 | 显示全部楼层
VSCode的嵌入式调试确实还不太给力。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-5-25 10:43:33 | 显示全部楼层
再给大家帖张图,Ozone基本满足所有调试需求,而且比较稳定,而且使用也简单,只需要连上JLink,加载编译出的ELF文件,就可以正常调试了,源码什么的都是自动对应的,强烈推荐
跟Keil对比,感觉只缺少Keil针对Cortex-M的那几个很好用的Fault Report, NVIC Report窗口了,其他的功能感觉只强不弱
2024-05-25_10-39.png
回复

使用道具 举报

8

主题

155

回帖

179

积分

初级会员

积分
179
发表于 2024-5-25 16:43:13 | 显示全部楼层
vscode对于嵌入式的调试功能,除了垃圾已经想不到其他什么词来形容了。
回复

使用道具 举报

5

主题

269

回帖

284

积分

高级会员

积分
284
发表于 2024-5-25 17:58:40 | 显示全部楼层
ozone现在只能用JLINK吗?
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-5-26 10:55:09 | 显示全部楼层
DX3906 发表于 2024-5-25 17:58
ozone现在只能用JLINK吗?

是的,而且好像还对JLink有授权文件要求,基础版的不确定能不能用
回复

使用道具 举报

1

主题

8

回帖

11

积分

新手上路

积分
11
发表于 2024-5-26 23:41:31 | 显示全部楼层
你用的什么插件 ? cortex-debug 吗?
我现在一直都是用的 vscode,平时调试好像没什么问题,
就是有时候如果优化开高了,gdb 就会乱跳,断点也命中不了
---
之前调试 nrf52832 的项目,它的 api 用的 svc 系统调用,好像有时序要求,用 gdb 调试好像不能随便按暂停,不然会死机
现在调试一般也是打log了,用 RTTViewer 也挺方便的
回复

使用道具 举报

0

主题

32

回帖

32

积分

新手上路

积分
32
发表于 2024-5-28 10:50:06 | 显示全部楼层
借帖子问一下。使用ozone或者crotex-debug插件来调试项目,是不是对编译器有要求啊?我用MDK编译出来的项目只能使用attach模式才能正常
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-5-28 12:20:56 | 显示全部楼层
nullptr 发表于 2024-5-26 23:41
你用的什么插件 ? cortex-debug 吗?
我现在一直都是用的 vscode,平时调试好像没什么问题,
就是有时候 ...

有安装这个
Nordic Connect SDK插件自带的环境有CMake和C/C++ Intellisense的补全等功能,然后Nordic的SDK默认配置好了JLink的调试环境,应该不是基于Openocd的,可能是直接JLink GDBServer
然后安装了cortex-debug改善arm汇编的调试功能,但是好像存在感也不明显
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-5-28 12:22:53 | 显示全部楼层
muooooo 发表于 2024-5-28 10:50
借帖子问一下。使用ozone或者crotex-debug插件来调试项目,是不是对编译器有要求啊?我用MDK编译出来的项目 ...

我在使用过程中没发现,MDK5 armclang编译的axf可以直接支持,Nordic的GCC编译出来的elf也是可以直接用。但是我发现JLink不能多开,否则容易出问题,比如开了RTT Viewer就不要去在IDE下代码进去。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-5-30 16:09:35 | 显示全部楼层
Snipaste_2024-05-30_16-08-42.png
其实也是有类似Fault report的功能的,还可以
回复

使用道具 举报

0

主题

12

回帖

12

积分

新手上路

积分
12
发表于 2024-6-2 21:22:46 | 显示全部楼层
Ozone也有不足,不可以加载多个ELF联调,反正我是没有折腾成功。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 09:42 , Processed in 0.050185 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表