xmake-io / xmake-vscode

🍩 A XMake integration in Visual Studio Code
https://xmake.io
Apache License 2.0
229 stars 54 forks source link

插件无法识别断点 #114

Closed xiaomi2077 closed 2 years ago

xiaomi2077 commented 2 years ago

Xmake 版本

xmake v2.6.7+master.91395ec

操作系统版本和架构

Linux nx-desktop 4.9.140-tegra #1 SMP PREEMPT Fri Apr 16 01:50:20 PDT 2021 aarch64 aarch64 aarch64 GNU/Linux

描述问题

xmake.lua已设置add_rules("mode.debug"),且xmake -r重新编译 image 测试代码在第10行打了断点。

  1. 使用vscode左边的运行和调试,不会停在断点处,直接运行结束。launch.json配置如下: image

  2. 使用下方的tool bar,如下图: image 2.1 点击这个按钮image选择要调试的目标,表现和1一样,不停在断点处,直接运行结束 2.2 点击这边的虫子按钮截屏-20220618220345-274x28能调试,但是会停在函数入口处,不会直接停在断点处,如下图: image

期待的结果

正确停在断点处

工程配置

No response

附加信息和错误日志

No response

waruqi commented 2 years ago

看着没啥问题,运行正常。

使用vscode左边的运行和调试,不会停在断点处,直接运行结束。launch.json配置如下:

launch.json 不要去动,压根不会用到,你改啥都不会有效

2.1 点击这个按钮image选择要调试的目标,表现和1一样,不停在断点处,直接运行结束

那个是运行按钮,当然不会走调试流程

2.2 点击这边的虫子按钮截屏-20220618220345-274x28能调试,但是会停在函数入口处,不会直接停在断点处,如下图:

就是点这个虫子调试,而且你这也正常断下来,说明正常啊,没发现啥问题。。

至于停在 main ,那是因为如果用户什么断点都没设置,调试运行,会直接跑完退出,用户不明所以,所以我默认开启了 main 入口自动断点。。

这没啥问题,跟你的断点也不冲突,你继续 run 下去,不就能继续触发你的断点了么。。

xiaomi2077 commented 2 years ago

至于停在 main ,那是因为如果用户什么断点都没设置,调试运行,会直接跑完退出,用户不明所以,所以我默认开启了 main 入口自动断点。。

我设置了断点,也是直接停在main入口

这没啥问题,跟你的断点也不冲突,你继续 run 下去,不就能继续触发你的断点了么。。

继续run下去,需要一下一下的点到断点处,这个断点设置不设置没啥区别,反正不能直接跳转到断点处。如果断点很远,体验就很差了。如果用户设置了断点能直接停在断点处吗?

waruqi commented 2 years ago

继续run下去,需要一下一下的点到断点处,这个断点设置不设置没啥区别,反正不能直接跳转到断点处。如果断点很远,体验就很差了。如果用户设置了断点能直接停在断点处吗?

单步才会一步步点到断点,调试分:单步、继续运行,step in, step over 各种模式,你先区分下。。不要点单步。。

调试程序不可能每次只有一个断点,按你说的,要是我设置了 N 个断点,那跑到第二个断点,得点好久。。直接点继续运行,第二个断点,也就立马跑到了,也就不到1s的事情。

xiaomi2077 commented 2 years ago

单步才会一步步点到断点,调试分:单步、继续运行,step in, step over 各种模式,你先区分下。。不要点单步。。

囧,我懂了,懂了。

launch.json 不要去动,压根不会用到,你改啥都不会有效

  1. 使用下方的调试和运行都不会用launch.json这个文件吧。
  2. 调试传参数在这里 https://github.com/xmake-io/xmake-vscode/issues/2#issuecomment-413574267 ,那运行传参数在哪里呢?我目前使用的是左边的调试和运行,参数写在launch.json里。有没有一个统一的地方,而不是在setting.json中写调试参数,在launch.json中写运行参数
waruqi commented 2 years ago

不会用 launch ,不要用左侧的调试栏。。

所有配置 package.json 都能找到

https://github.com/xmake-io/xmake-vscode/blob/f5f4d20cbd424b056f90666311be5f1292dacf2d/package.json#L490-L503

xiaomi2077 commented 2 years ago

好的,我去试试,关闭issue了