User manual
Debug for 8- and 16-Bit Devices
© 2008 Microchip Technology Inc. DS51616B-page 71
• To record a PC location, click on or highlight a line of code and then right click to
select “Insert Language Line Trace” from the pop-up menu, where Language can
be either C or ASM. This causes the following macro line to be inserted above the
selected line:
__TRACE(id);
where id is a line trace number auto-generated during the build. For more
information, see Section 7.3.10 “More on Trace/Log ID Numbers”.
• The recording of a variable value is performed much in the same way. First high-
light the variable name or expression and then right click to select “Log Selected
Language Value” from the pop-up menu, where Language can be either C or
ASM. This causes the following macro line to be inserted above the line
containing the variable:
__LOG(id,selected variable);
where id is a log number auto-generated during build and selected variable
is the highlighted variable. For more information, see Section 7.3.10 “More on
Trace/Log ID Numbers”.
• To remove a trace point, simply highlight and then delete the Trace/Log macro.
7.3.6 Running Trace
1. On the Project Manager toolbar, select “Debug” from the Build Configuration
drop-down list.
2. Rebuild the project (Project>Build All
).
3. After rebuilding, if there are trace macros in code, a Warning dialog will ask, “File
has been modified. Do you want to reload?”. Click Yes. When you examine your
code, you will find that all ids have been replaced with unique numbers.
4. Reprogram the device (Debugger>Program
).
5. Run the program and then halt, or set a breakpoint to halt.
6. Select View>Trace
to view the trace data (Section 11.3.11 “Trace Window”) or
right click and in the Trace window and select “Reload”. For each __TRACE
macro, the line of code following the macro will appear in the trace window each
time it is passed. For each __LOG macro, the selected variable in the line of code
following the macro will appear in the trace window each time it is passed.
Repeat these steps each time you change a trace point.
7.3.7 Tracing Tips
When using __TRACE and __LOG macros in your code, consider the following:
• Focus on one area of an application and place __TRACE and __LOG macros so
that they form a “flow” in the Trace window. That way, you can follow the execution
flow and debug the application based on missing/incorrect trace points or an
abrupt end to the trace flow.
•Use __TRACE and __LOG macros with conditional statements in your code to aid
in debugging. Example: When a variable reaches a certain value, start logging it.
Note: Inserting a macro into code may modify the logic flow of the program.
Please be sure that braces are present where necessary.
Note: To disable this warning and automatically reload, select
Configure>Settings
, Other tab, and check “Automatically reload files
that were modified outside of the IDE”. Then click OK.
Note: To trace multiple lines of code or variables, you must place a macro
before each line/variable that you wish to trace.