Troubleshooting

In general, make sure that the target system is running a recent firmware version that allows JTAG debugging.

Target Connectivity

The following table lists known target connection issues and solutions:

Symptom / Error Message Possible Root Cause Solution

No threads found.

Reset all JTAG debugging components:

  1. Shut-down the Intel® System Debugger.
  2. Power off the target system.
  3. Unplug the USB cable from the probe
  4. XDP3 probe only; unplug the power cable so no cable is connected to the XDP3 probe anymore
  5. Using the task manager, kill the process MasterFrame.HostApplication.exe if it's running.
  6. Plug the USB cable back to the probe
  7. XDP3 probe only; plug the power connector back into the XDP3 probe.
  8. Power on the target system.
  9. Start the debugger.

If this does not fix the issue, contact customer support for your platform

Probe not found.

Probe is not connected.

Make sure the probe's power supply is connected and that the probe's fan spins.

Target not responding.

Target board is powered off or is not connected to the probe.

Make sure that both the target board and probe are powered on and that the probe cable (wide ribbon cable) is connected to the correct debug port on your target. Check your target board documentation for location of the debug port, note that some board have multiple JTAG ports, typically you want the "CPU" debug port.

Make sure JTAG connection on your target board is enabled/not secured and properly terminated on your target board.

If the setup is correct try a reset as described above.

Unable to serialize CPU TAPs.

Wrong target is selected on connect dialog or the target board is in low power state.

Make sure the correct probe and target board is selected in the connect dialog drop down menu. Make sure the target/core has not entered low power state.

Probe in use.

Another instance of the debugger is running.

Check if another debugging session is still open and close it. Make sure that there is no active "xdb" process running in the background.

Target Stability

The source debugger requires a great amount of data to construct a full source-level view of the target state. For a simple operation such as step, there can be tens to hundreds of individual accesses to target state. When one of these accesses provokes a target crash, it can be difficult to identify the root cause.

To narrow and isolate causes of target stability issues:

  1. Close as many GUI panels as possible.

    Each panel in the debugger (such as the registers panel, MSR panel, etc.) is self-updating. If many panels are open, there are many target accesses. Closing panels is one way to isolate which functional group is causing the problem.

  2. Use the TCI_LOG flag to turn on API logging.

    The debugger can log all transactions made to the target connection layer. Enable logging by setting the environment variable TCI_LOG=1.

    For example, edit the xdb.bat startup script to include the command set TCI_LOG=1.

    A log file will be created in C:\Users\<username>\.sysdbg_<product_year>.

Symbol File Issues

Specifying Module Symbol or Source Paths

If a module is successfully loaded, you can see it in the Source Files window. If the current instruction pointer is within the module, the Source window opens at the current line of code.

If you are building and debugging on different systems, your local file system paths probably do not match the paths that are included in the debug information. To fix this, go to Options > Source Directories... and set source folders and/or replacement rules, so that the debugger can find the debug information and source files.

When using the Microsoft Compiler: Your executable (.efi or .exe) and the corresponding debug information (.pdb) must be in the same folder.

Verifying Module Offset Parameter

To verify that you have supplied the correct offset:

  • Add a hard-coded breakpoint or while (1) loop at some known location of your code. The debugger should automatically load the correct source file and you should see a yellow arrow pointing to the correct line of code, as shown in this picture.

  • Right-click a line and select Jump To Assembler from the context menu.

    The Assembler window is opened, showing the disassembly code that clearly correlates to your function and/or execution point.

Optimization Notice: 
For more complete information about compiler optimizations, see our Optimization Notice.