共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 跳转至页
回复
打赏帖 | |
---|---|
汽车电子中巡航控制系统的使用被打赏10分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 | |
分享电子控制安全气囊计算机知识点被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【OZONE】使用方法总结被打赏20分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K314】芯片启动流程分析被打赏40分 | |
【分享开发笔记,赚取电动螺丝刀】【S32K146】S32DS RTD 驱动环境搭建被打赏12分 | |
【分享开发笔记,赚取电动螺丝刀】【IAR】libc标注库time相关库函数使用被打赏23分 | |
LP‑MSPM0L1306开发版试用结果被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】【LP-MSPM0L1306】适配 RT-Thread Nano被打赏23分 |