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

uvision skipping lines, debug?

I have a project I tried cleaning and rebuilding but debug is skipping lines.

while (1) {
1 Delay(); //delay 200ms
2 CanWriteData(0xA544);
3 Delay(); //delay 200ms

}

I put a break point on 1,2 and 3. the break point 1 is skipped and the debug goes right to 2. If I step in it goes to the delay function not the CanWriteData and freezes. If I instead hit f5 it goes to 3, then back to 2,3,2,3,2, etc... on hitting 5f.

What can I do to get the debugger to know the code was changed?

Parents
  • Compile without optimization. The compiler doesn't have a one-to-one relationship between C lines and assembler code generated, code may spread over multiple lines, be re-ordered or removed. Use the disassembly view to place breakpoints, and review the generated code.

    Dead code and pointless spin loops may also be removed. Use volatile keyword appropriately.

Reply
  • Compile without optimization. The compiler doesn't have a one-to-one relationship between C lines and assembler code generated, code may spread over multiple lines, be re-ordered or removed. Use the disassembly view to place breakpoints, and review the generated code.

    Dead code and pointless spin loops may also be removed. Use volatile keyword appropriately.

Children
No data