打印
[开发工具]

MPLABX怎么调试的时候看不了变量了

[复制链接]
1793|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wooda|  楼主 | 2019-4-29 11:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小卡 于 2019-5-22 13:52 编辑

如图,本来单步或者暂停时候下面红框里面是有显示当前局部变量以及人工添加的wathc值的,现在怎么没有了?然后同一个工程的同一个c的另外一个函数,就能有,如下图:

有谁知道是什么原因么?
谢谢。

使用特权

评论回复
沙发
CoolSilicon| | 2019-4-29 11:23 | 只看该作者
看样子, 你是在调软件逻辑, 或者运算相关的代码,
其实你可以在project属性里面选Simulator, 用软件仿真的模式, 断点可以设置非常多, 出来的效果跟芯片硬件直接仿真是一样的.
另外, 你软件优化级别也别开太高, 有些你可能需要看的变量, 在高优化下,会看不到...

实在不行, 重启试试?

使用特权

评论回复
板凳
wooda|  楼主 | 2019-4-29 11:26 | 只看该作者
CoolSilicon 发表于 2019-4-29 11:23
看样子, 你是在调软件逻辑, 或者运算相关的代码,
其实你可以在project属性里面选Simulator, 用软件仿真的模 ...

和硬件相关的还是要在硬件上调,上一个截图里面是读外部eep的,没办法模拟
软件优化的话,难道同一个c里面不同的函数待遇就不一样?有可能吧,我去看看优化级别。
重启过了,这个问题昨天就发现了,还特意下班完全关闭操作系统,。。。今天还是一样

使用特权

评论回复
地板
wooda|  楼主 | 2019-4-29 11:31 | 只看该作者
优化貌似没有很详细的调节方法。。。

使用特权

评论回复
5
wooda|  楼主 | 2019-4-29 12:41 | 只看该作者
CoolSilicon 发表于 2019-4-29 11:23
看样子, 你是在调软件逻辑, 或者运算相关的代码,
其实你可以在project属性里面选Simulator, 用软件仿真的模 ...

调到standard模式下,还是没有,这下不知道怎么办了

使用特权

评论回复
6
wooda|  楼主 | 2019-4-29 14:03 | 只看该作者
临时解决方法:将要看的变量提出来做全局变量,就能看了。。。
不知道调试完毕恢复成局部变量时候会不会有问题。
到时候再说吧

使用特权

评论回复
7
CoolSilicon| | 2019-4-29 15:30 | 只看该作者
wooda 发表于 2019-4-29 14:03
临时解决方法:将要看的变量提出来做全局变量,就能看了。。。
不知道调试完毕恢复成局部变量时候会不会有 ...

你要看局部变量的话, 断点需要打在那个局部变量所在的函数里, 并且要运行到那里才能看到的...

使用特权

评论回复
8
CoolSilicon| | 2019-4-29 15:31 | 只看该作者
wooda 发表于 2019-4-29 14:03
临时解决方法:将要看的变量提出来做全局变量,就能看了。。。
不知道调试完毕恢复成局部变量时候会不会有 ...

你要看局部变量的话, 断点需要打在那个局部变量所在的函数里, 并且要运行到那里才能看到的...

使用特权

评论回复
9
wooda|  楼主 | 2019-5-1 13:11 | 只看该作者
CoolSilicon 发表于 2019-4-29 15:31
你要看局部变量的话, 断点需要打在那个局部变量所在的函数里, 并且要运行到那里才能看到的... ...

当然咯,图上也是绿色的当前行是在函数里

使用特权

评论回复
10
淘猫汤姆| | 2019-5-5 18:29 | 只看该作者
报告一下ide和编译器版本? variable里面似乎是根据scope来过滤显示的

使用特权

评论回复
11
wooda|  楼主 | 2019-5-6 15:22 | 只看该作者
淘猫汤姆 发表于 2019-5-5 18:29
报告一下ide和编译器版本? variable里面似乎是根据scope来过滤显示的

报告:ide是MPLABX 4.20,编译器XC8 1.41

使用特权

评论回复
12
wooda|  楼主 | 2019-5-8 22:57 | 只看该作者
bellstudio 发表于 2019-5-8 17:41
看看你编译器选项里有一个debug有没有打开,IDE需要符号信息来解析

问题是吧局部变量放到全局就行了。
已经尝试过重新全部编译也不行。想不通。

使用特权

评论回复
13
小卡| | 2019-5-22 13:53 | 只看该作者
升级就好了吗~~

使用特权

评论回复
14
externally| | 2019-5-23 15:12 | 只看该作者
楼主解决了没有?只能变成全局变量么?

使用特权

评论回复
15
wooda|  楼主 | 2019-5-25 13:37 | 只看该作者

升级也不行,特地找了个干净的环境试过了

使用特权

评论回复
16
wooda|  楼主 | 2019-5-25 13:39 | 只看该作者
externally 发表于 2019-5-23 15:12
楼主解决了没有?只能变成全局变量么?

对,设定成全局变量调试,然后逻辑正确后放回局部变量,然后设几个flag类型的全局变量,,在关键步骤地方对局部变量进行验算并反馈到flag上,调试无误后flag变量去掉,验算逻辑去掉,
嗯,就是这样

使用特权

评论回复
17
externally| | 2019-5-29 20:23 | 只看该作者
wooda 发表于 2019-5-25 13:39
对,设定成全局变量调试,然后逻辑正确后放回局部变量,然后设几个flag类型的全局变量,,在关键步骤地方 ...

正常不应该这样的,局部变量应该也可以调试的,毕竟全局变量和局部变量用起来还是不一样的,这样的话很容易忽略一些问题。

使用特权

评论回复
18
characteristic| | 2019-5-29 20:54 | 只看该作者
还有这种情况?没遇到过。。。

使用特权

评论回复
19
wooda|  楼主 | 2019-6-1 17:05 | 只看该作者
characteristic 发表于 2019-5-29 20:54
还有这种情况?没遇到过。。。

夜路走多了就会遇见gui
项目写多了就会遇见gui 级bug
很正常

使用特权

评论回复
20
characteristic| | 2019-6-17 14:20 | 只看该作者
wooda 发表于 2019-6-1 17:05
夜路走多了就会遇见gui
项目写多了就会遇见gui 级bug
很正常

楼主问题解决了没有?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

456

帖子

1

粉丝