OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2965|回复: 12

Degbug软件调试

[复制链接]

14

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2017-10-2
在线时间
80 小时
发表于 2017-10-23 13:49:47 | 显示全部楼层 |阅读模式
1金钱
我的程序调试时,进到for里怎么出不来了?我想知道如何在调试时,跳出for循环

最佳答案

查看完整内容[请看2#楼]

totalpoint这个值估计很大,跳不出这个函数void LCD_Clear(u16 color),应是程序有问题。可以 for(index=0;index
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
659
金钱
659
注册时间
2017-5-19
在线时间
146 小时
发表于 2017-10-23 13:49:48 | 显示全部楼层
totalpoint这个值估计很大,跳不出这个函数void LCD_Clear(u16 color),应是程序有问题。可以 for(index=0;index<totalpoint;index++) 改index<某数,如100;再不行,加break;
回复

使用道具 举报

25

主题

161

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2017-7-17
在线时间
149 小时
发表于 2017-10-23 16:21:41 | 显示全部楼层
不要单步执行。设置断点
回复

使用道具 举报

14

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2017-10-2
在线时间
80 小时
 楼主| 发表于 2017-10-23 16:28:23 | 显示全部楼层
王建峰 发表于 2017-10-23 16:21
不要单步执行。设置断点

老哥,断点没用啊,而且点执行过去,执行出去,和执行到光标处都没出去。
回复

使用道具 举报

25

主题

161

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2017-7-17
在线时间
149 小时
发表于 2017-10-23 16:30:23 | 显示全部楼层
a0101 发表于 2017-10-23 16:28
老哥,断点没用啊,而且点执行过去,执行出去,和执行到光标处都没出去。

你把程序贴出来瞅瞅
不忘初心,方得始终!
回复

使用道具 举报

14

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2017-10-2
在线时间
80 小时
 楼主| 发表于 2017-10-23 16:40:47 | 显示全部楼层
王建峰 发表于 2017-10-23 16:30
你把程序贴出来瞅瞅

老哥,你看看这样贴的代码行吗,以前没贴过,这是一次。
void LCD_Clear(u16 color)
{
        u32 index=0;      
        u32 totalpoint=lcddev.width;
        totalpoint*=lcddev.height;                         //得到总点数
        if((lcddev.id==0X6804)&&(lcddev.dir==1))//6804横屏的时候特殊处理  
        {                                                    
                lcddev.dir=0;         
                lcddev.setxcmd=0X2A;
                lcddev.setycmd=0X2B;                                  
                LCD_SetCursor(0x00,0x0000);                //设置光标位置  
                lcddev.dir=1;         
                  lcddev.setxcmd=0X2B;
                lcddev.setycmd=0X2A;           
        }else LCD_SetCursor(0x00,0x0000);        //设置光标位置
        LCD_WriteRAM_Prepare();                     //开始写入GRAM                   
        for(index=0;index<totalpoint;index++)
        {
                LCD->LCD_RAM=color;       
        }
}  
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2017-4-22
在线时间
4 小时
发表于 2017-10-23 16:57:02 | 显示全部楼层
你断点设置在这一行               LCD->LCD_RAM=color;   
然后查看一下你的totalpoint这个变量的值,观察一下index的变化,就知道为啥出不去了。
低调做人,高调做事
回复

使用道具 举报

14

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2017-10-2
在线时间
80 小时
 楼主| 发表于 2017-10-23 17:03:14 | 显示全部楼层
David753 发表于 2017-10-23 16:57
你断点设置在这一行               LCD->LCD_RAM=color;   
然后查看一下你的totalpoint这个变量的值,观 ...

老哥,我知道为啥出不去我大概明白一点,出不去是不是因为index<totalpoint,我想出去啊,出不去程序没法调啊。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-10-23 17:30:14 | 显示全部楼层
点击跳出循环按钮即可
回复

使用道具 举报

14

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2017-10-2
在线时间
80 小时
 楼主| 发表于 2017-10-23 17:33:48 | 显示全部楼层
liuliupiaoxue 发表于 2017-10-23 17:19
totalpoint这个值估计很大,跳不出这个函数void LCD_Clear(u16 color),应是程序有问题。可以 for(index=0; ...

谢谢啦老哥,刚刚我听了6楼的意见后尝试了一下,不过改的totalpoint,现在听了你的意见后,感觉你的更合理。
回复

使用道具 举报

14

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2017-10-2
在线时间
80 小时
 楼主| 发表于 2017-10-23 17:35:44 | 显示全部楼层
八度空间 发表于 2017-10-23 17:30
点击跳出循环按钮即可

这个按钮点了,没出来。
回复

使用道具 举报

25

主题

161

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2017-7-17
在线时间
149 小时
发表于 2017-10-23 17:37:40 | 显示全部楼层
单单看程序的话,没看出来哪有问题。你这样操作试试:循环体前面、后面各设一个断点,然后看看能不能直接执行过去。如果不能得话,就到循环体里,单步执行,观察变量totalpoint、index的变化有没有问题。
不忘初心,方得始终!
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2017-10-23 17:41:47 | 显示全部楼层
a0101 发表于 2017-10-23 17:35
这个按钮点了,没出来。

那在循环后面用断点
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 19:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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