我正在使用针对NXP uP(MCUExpresso)调整的Eclipse与目标NXP uP调试c ++代码。 我设置了“无”优化,并在c ++编译器上手动强制使用了参数“ -o0”,但是在调试时由于“已优化”而未显示某些变量。
我能做什么?
在编译时这里只有一小部分调试控制台
11:58:06 **** Incremental Build of configuration Debug for project xxxx ****
make -r -o0 -j8 all
Invoking: MCU C++ Compiler
arm-none-eabi-c++ -D__NEWLIB__ -D__CODE_RED -DCPP_USE_HEAP -DTARGET_MBED_LPC1768 -DDEVICE_ERROR_PATTERN=1 -D__MBED__=1 -DDEVICE_I2CSLAVE=1 -DTARGET_LIKE_MBED -DTARGET_NXP -DTARGET_LPC176X -DDEVICE_PORTIN=1 -D__CMSIS_RTOS -DDEVICE_RTC=1 -DTOOLCHAIN_object -DMBED_BUILD_TIMESTAMP=1479310415.64 -DTOOLCHAIN_GCC -DDEVICE_CAN=1 -DTARGET_LIKE_CORTEX_M3 -DTARGET_CORTEX_M -DARM_MATH_CM3 -DDEVICE_ANALOGOUT=1 -DTARGET_UVISOR_UNSUPPORTED -DTARGET_M3 -DDEVICE_PWMOUT=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_I2C=1 -DDEVICE_PORTOUT=1 -D__CORTEX_M3 -DDEVICE_STDIO_MESSAGES=1 -DTARGET_LPC1768 -DTOOLCHAIN_GCC_CR -DDEVICE_PORTINOUT=1 -DDEVICE_SERIAL_FC=1 -DTARGET_RELEASE -D__MBED_CMSIS_RTOS_CM -DDEVICE_SLEEP=1 -DDEVICE_SPI=1 -DDEVICE_ETHERNET=1 -DDEVICE_SPISLAVE=1 -DDEVICE_ANALOGIN=1 -DDEVICE_SERIAL=1 -DDEVICE_SEMIHOST=1 -DDEVICE_DEBUG_AWARENESS=1 -DDEVICE_LOCALFILESYSTEM=1 -I
[...]
-O0 -g -Wall -c -std=gnu++98 -fno-rtti -Wvla -DTARGET_MBED_LPC1768 -DDEVICE_ERROR_PATTERN=1 -D__MBED__=1 -DDEVICE_I2CSLAVE=1 -DTARGET_LIKE_MBED -DTARGET_NXP -DTARGET_LPC176X -DDEVICE_PORTIN=1 -D__CMSIS_RTOS -DDEVICE_RTC=1 -DTOOLCHAIN_object -DMBED_BUILD_TIMESTAMP=1479310415.64 -DTOOLCHAIN_GCC -DDEVICE_CAN=1 -DTARGET_LIKE_CORTEX_M3 -DTARGET_CORTEX_M -DARM_MATH_CM3 -DDEVICE_ANALOGOUT=1 -DTARGET_UVISOR_UNSUPPORTED -DTARGET_M3 -DDEVICE_PWMOUT=1 -DDEVICE_INTERRUPTIN=1 -DDEVICE_I2C=1 -DDEVICE_PORTOUT=1 -D__CORTEX_M3 -DDEVICE_STDIO_MESSAGES=1 -DTARGET_LPC1768 -DTOOLCHAIN_GCC_CR -DDEVICE_PORTINOUT=1 -DDEVICE_SERIAL_FC=1 -DTARGET_RELEASE -D__MBED_CMSIS_RTOS_CM -DDEVICE_SLEEP=1 -DDEVICE_SPI=1 -DDEVICE_ETHERNET=1 -DDEVICE_SPISLAVE=1 -DDEVICE_ANALOGIN=1 -DDEVICE_SERIAL=1 -DDEVICE_SEMIHOST=1 -DDEVICE_DEBUG_AWARENESS=1 -DDEVICE_LOCALFILESYSTEM=1 -include mbed_config.h -c -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -fmessage-length=0 -fno-exceptions -fno-builtin -ffunction-sections -fdata-sections -funsigned-char -MMD -fno-delete-null-pointer-checks -fomit-frame-pointer -mcpu=cortex-m3 -mthumb -Os -mcpu=cortex-m3 -mthumb -D__NEWLIB__ -MMD -MP
[...]
Invoking: MCU C++ Linker
[...]
Memory region Used Size Region Size %age Used
MFlash512: 52304 B 512 KB 9.98%
RamLoc32: 7316 B 32568 B 22.46%
RamAHB_USB: 0 GB 16 KB 0.00%
RamAHB_Eth: 0 GB 16 KB 0.00%
[....]
11:58:20 Build Finished (took 14s.814ms)
例如:
void serialExPollTimerLoopBack(){
int elap = SerialEXTimeCount.read_ms();
if ((SerialNumByteRx > 0) && (elap > SERIAL_RCVTIME)){
// do something
}
}
变量elap无法在“ if”上使用断点进行调试