共2条
1/1 1 跳转至页
不能设置断点问题
在用codewarrior3.1版本调试时候,出现了不能设置断点的问题,按照strongchen的建议查看lst文件,发现不能设置断点的语句,其汇编代码当中也没有其相应的汇编指令,在程序运行的时候,不能设置断点的语句是不会执行的。这个问题我花了我两天的时间,百思不得其解。后来跟同学讨论了一下,同学建议将不能设置断点的语句顺序调换一下,竟然好了,但是在同一个函数当中还是有其它的语句不能设置断点,该函数里面主要是由if..else if..if else ..else.条件判断语句组成。后来就如法炮制,将其他的不能设置断点的语句调换一下顺序,在调换的时候发现:凡是在该函数里面的不同的if条件语句段当中,如果前面一个if语句段里面最后一句和接下来的if或者if else语句段里面的最后一句相同的话,那么前面的if语句最后一句不能设置断点,而接下来的最后一个if或者if else语句段里面的最后一句能执行!
我在其他函数里面与次类似的情况也改了顺序,都能执行了。我举例说明。
void function(void)
{
if(.....)
asm(nop);
else
{
语句1;
if(......)
{
.........
语句2;
}
else if(.....)
{
.........
if(......)
{
.........
.........
语句2;
}
}
else if(.........)
{
.........
.........
if(.........)
{
.........
语句2;
}
}
}
}
在上面这个函数当中,不同的if 或者if else里面在语句段在最后一句都有一个
“语句2;”在实际调试当中,前两个红色的“语句2;”就不能设置断点,而最后一个蓝色的“语句2;”就能设置断点且被执行。出现这种问题只要不将相同的语句放在最后一句就行,实在不行的话就在最后一句加上空指令。
我有点肯定是软件的bug,我什么都没有修改,仅仅将各个判断语句最后一句相同的语句换成不一样的就可以了。希望能给大家带来一些参考。另外,不知新版本的codewarrior有此类bug或者现象出现。
关键词: 不能 设置 断点 问题 语句 最后
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |