共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【S32K3学习整理】使用 LPUART 的loopback 模式实现核间通讯被打赏¥28元 | |
| arduinounoq原生zephyr环境搭建被打赏¥31元 | |
| 树莓派3+Klipper,MPU6050共振补偿被打赏¥41元 | |
| GroveCreatorKit套件+摇杆测评被打赏¥18元 | |
| 设备功耗web监控界面(ESP32C5)被打赏¥28元 | |
| OrangePiZero2W系统被打赏¥33元 | |
| Linux环境下以模拟方式快速实现出入管理功能测试被打赏¥24元 | |
| 树莓派3+Klipper,老3D打印机满血升级被打赏¥33元 | |
| OK1126B-S开发板下串口屏及其应用被打赏¥21元 | |
| 低功耗超声波液位测距仪(ESP32S3)被打赏¥27元 | |
我要赚赏金
