硬汉嵌入式论坛

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

[微软全家桶] VSCode有些情景下的go to def不好使(已经解决)

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2023-2-20 03:03:32 | 显示全部楼层 |阅读模式

2023-07-30补充,后续新版VSCode已经解决此bug

特定下面这种情景,查看ThreadX的源码

最后直接卡在了 _tx_initialize_kernel_enter 上,无法看其源码


回复

使用道具 举报

59

主题

284

回帖

461

积分

高级会员

积分
461
发表于 2023-2-20 03:09:53 | 显示全部楼层
我有时点了会到声明上,你会跳到定义上
回复

使用道具 举报

3

主题

56

回帖

65

积分

初级会员

积分
65
发表于 2023-2-20 07:56:38 来自手机 | 显示全部楼层
最烦是老跳到声明上去
回复

使用道具 举报

2

主题

23

回帖

29

积分

新手上路

积分
29
发表于 2023-2-20 08:22:19 | 显示全部楼层
感觉是vscode没有keil上面的路径配置。
回复

使用道具 举报

19

主题

235

回帖

292

积分

高级会员

积分
292
发表于 2023-2-20 08:56:53 | 显示全部楼层
配置了c_cpp_properties.json里面的includePath没有
回复

使用道具 举报

6

主题

36

回帖

54

积分

初级会员

积分
54
发表于 2023-2-20 09:07:55 | 显示全部楼层
我也经常遇到这个问题,至今还没找到解决办法。老大找到了解决办法,别忘了分享一下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-2-20 09:39:53 | 显示全部楼层
慕容薯条 发表于 2023-2-20 08:22
感觉是vscode没有keil上面的路径配置。

这个是IAR的vscode插件,就楼主位的跳转位置不对,其它跳转都没有问题。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-2-20 09:40:29 | 显示全部楼层
tovinz 发表于 2023-2-20 08:56
配置了c_cpp_properties.json里面的includePath没有

配置了,这个是IAR的vscode插件,就楼主位的跳转位置不对,其它跳转都没有问题。
回复

使用道具 举报

0

主题

58

回帖

58

积分

初级会员

积分
58
发表于 2023-2-20 09:40:49 | 显示全部楼层
要配置 c_cpp_properties.json
iar的工程,装iar_build插件之后能识别项目的配置信息,可以在VScode上编译,错误跳转都可以
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-2-20 09:41:23 | 显示全部楼层
lxianchao 发表于 2023-2-20 09:07
我也经常遇到这个问题,至今还没找到解决办法。老大找到了解决办法,别忘了分享一下

以前的代码没有遇到这种情况,楼主方式的代码书写方式就不行了,直接跳到定义上了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-2-20 10:23:46 | 显示全部楼层
cowen 发表于 2023-2-20 09:40
要配置 c_cpp_properties.json
iar的工程,装iar_build插件之后能识别项目的配置信息,可以在VScode上编译 ...

仅楼主位这种场景的定义方式无法正常跳转,其它的,IAR的VSCode插件都可以正常识别

有没有修改建议
回复

使用道具 举报

210

主题

1044

回帖

1684

积分

至尊会员

More we do, more we can do.

积分
1684
发表于 2023-2-20 13:00:47 | 显示全部楼层
看是有问题。检查下这个配置看看:
image.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-2-20 18:06:12 | 显示全部楼层
emwin 发表于 2023-2-20 13:00
看是有问题。检查下这个配置看看:

测试了,不行

image.png
回复

使用道具 举报

19

主题

235

回帖

292

积分

高级会员

积分
292
发表于 2023-2-20 18:26:36 | 显示全部楼层

你手动添加一下includePath,最简单的就像我这样,直接把整个源码的根目录加进行, 双星号表示目录下的所有子目录


QQ截图20230220182422.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-2-20 21:05:14 | 显示全部楼层
tovinz 发表于 2023-2-20 18:26
你手动添加一下includePath,最简单的就像我这样,直接把整个源码的根目录加进行, 双星号表示目录下的所 ...

这个IAR自带的插件已经配置好了。
回复

使用道具 举报

0

主题

100

回帖

100

积分

初级会员

积分
100
发表于 2023-2-21 08:22:47 | 显示全部楼层
VS code试了很多次,在宏解释方面比起Eclipse差距还是太大,对于嵌入式这种嵌套宏定义满天飞的环境太不友好了。

譬如现在最新版的1.14.3插件,连下面这段代码里unuse code 1会正确变暗而unuse code 2却不会。
#if 0
unuse code 1
#endif

#define A 0
#if A
unuse code 2
#endif
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-2-21 09:19:09 | 显示全部楼层
ilcvm 发表于 2023-2-21 08:22
VS code试了很多次,在宏解释方面比起Eclipse差距还是太大,对于嵌入式这种嵌套宏定义满天飞的环境太不友好 ...

宏跳转这块,有些特定场景,确实不太好用。
回复

使用道具 举报

3

主题

20

回帖

29

积分

新手上路

积分
29
发表于 2023-2-21 09:41:08 | 显示全部楼层
装了好几次,最后都删了。总是出现莫名其妙的问题,我觉得这个软件真的不好用,比source insight差远了。
回复

使用道具 举报

73

主题

1198

回帖

1417

积分

至尊会员

积分
1417
发表于 2023-2-21 11:26:25 | 显示全部楼层
dongshan 发表于 2023-2-21 09:41
装了好几次,最后都删了。总是出现莫名其妙的问题,我觉得这个软件真的不好用,比source insight差远了。

已经离不开这个软件了。大部分时间都好用,不影响使用。
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2023-2-22 21:53:00 | 显示全部楼层
用cmake生成compile_commands.json文件配合clangd
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-2-23 09:50:49 | 显示全部楼层
neptunekk 发表于 2023-2-22 21:53
用cmake生成compile_commands.json文件配合clangd

这种方式可以解决这种宏定义方式吗
回复

使用道具 举报

610

主题

3061

回帖

4911

积分

至尊会员

积分
4911
发表于 2023-2-23 11:26:52 | 显示全部楼层
感觉貌似还是使用 Clion + CubeMX 好使哟
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2023-2-23 12:35:31 | 显示全部楼层
我还一直在用MDK自带编辑器
代码不规范,亲人两行泪!
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2023-2-24 21:44:22 | 显示全部楼层
eric2013 发表于 2023-2-23 09:50
这种方式可以解决这种宏定义方式吗

compile_commands.json是根据编译的工程所需的源文件和宏生成,相比source insight更精准,cmake工程编译需开启宏set(CMAKE_EXPORT_COMPILE_COMMANDS ON),编译目录下会生成对应的compile_commands.json文件,vscode中clangd插件的参数配置中需添加对应的compile_commands.json目录。使用makefile管理的工程可以使用bear生成compile_commands.json,如linux kernel阅读。总之,vscode+clang+compile_commands.json阅读源码是更优于source insight的,具体的配置可以参考这篇博主的文章:https://blog.csdn.net/tyKuGengty/article/details/120119820
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-2-24 22:11:49 | 显示全部楼层
neptunekk 发表于 2023-2-24 21:44
compile_commands.json是根据编译的工程所需的源文件和宏生成,相比source insight更精准,cmake工程编译 ...

非常感谢分享。

就是太折腾了,现在是想把IAR的VS Code插件解决下,他这个插件使用起来很简单,安装就可以使用。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-7-30 18:56:53 | 显示全部楼层

此bug已经解决

下载.png
回复

使用道具 举报

73

主题

1198

回帖

1417

积分

至尊会员

积分
1417
发表于 2023-7-30 19:42:15 | 显示全部楼层

最新版本的vscode吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
 楼主| 发表于 2023-7-30 21:41:22 | 显示全部楼层
wdliming 发表于 2023-7-30 19:42
最新版本的vscode吗?

我用的这个版本

下载 (1).png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 14:29 , Processed in 0.465432 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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