This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Debugger does not run unless using MicroLIB

I have a Keil project that is built using ARMCC, with "use MicroLIB" unchecked. It links multiple libraries, including CppUTest, that are also built with ARMCC.

During Keil debug session with simulator, I set a single breakpoint on a line after my tests are called. I press "run" and it stops somewhere inside; I have to press "run" repeatedly to get it to step through each test call (and output each printf) and eventually reach the breakpoint I set.

However, when I compile the same project with "use MicroLIB" checked, pressing "run" behaves as expected and goes to the first breakpoint.

Does anyone have a good explanation for this behavior? I'd like to understand why this happens since I ultimately want to build without MicroLIB, but also have the debug "run" instead of having to repeatedly step.

Device: ARM Cortex M0 Plus
CMSIS pack: 5.4.0
uVision: 5.26.2.0
ARMCC: 5.06 update 6

Parents
  • I've also noticed a few other things:

    1. Building with or without --cpp11 flag does not affect the aforementioned behavior.

    2. While repeatedly stepping through the debug session, the Event Recorder and Debug (printf) Viewer windows are updated for all of my expected printf() calls. However, both of these outputs are not logged to files (using ER and SLOG in my .ini file). Like my original question, this also only occurs with "use MicroLIB" unchecked.

    Why are Event Recorder and Debug (printf) Viewer output only logged to files when "use MicroLIB" is checked? I need these files to be written when running via command line script, for indicating test results in Jenkins CI.

Reply
  • I've also noticed a few other things:

    1. Building with or without --cpp11 flag does not affect the aforementioned behavior.

    2. While repeatedly stepping through the debug session, the Event Recorder and Debug (printf) Viewer windows are updated for all of my expected printf() calls. However, both of these outputs are not logged to files (using ER and SLOG in my .ini file). Like my original question, this also only occurs with "use MicroLIB" unchecked.

    Why are Event Recorder and Debug (printf) Viewer output only logged to files when "use MicroLIB" is checked? I need these files to be written when running via command line script, for indicating test results in Jenkins CI.

Children