Provided by: avarice_2.13+svn375-1build1_amd64 bug

NAME

       ice-gdb - JTAG ICE frontend for avr-gdb
       ice-insight - JTAG ICE frontend for avr-insight

SYNOPSIS

       ice-gdb/ice-insight [--debugger debugger] [--capture] [--ignore-intr] [--external] [gdb_arguments]

DESCRIPTION

       ice-gdb  (respectively  ice-insight)  starts avr-gdb (respectively avr-insight) and avarice to do on-chip
       debugging on Atmel AVR processors using their JTAG-based on-chip debug facilities, via the Atmel JTAG ICE
       pod.

       The  executable for the program being debugged is downloaded to the processor unless the --capture option
       is specified. A number of extra commands are available within gdb when started, see their description  in
       NEW  GDB  COMMANDS below. Restrictions on debugging with the JTAG ICE pod are discussed in more detail in
       DEBUGGING WITH JTAG ICE below.

       The arguments passed to avarice include the value of  the  AVARICE_ARGS  environment  variable.  This  is
       typically  used to specify the serial port to which the JTAG ICE pod is connected by setting AVARICE_ARGS
       to "-j <serial port name>".

OPTIONS

       --debugger debugger_command
              Specify a different debugger than avr-gdb (or avr-insight).  This  other  debugger  should  behave
              similarly to gdb.

       --capture
              Don't  download  the executable being debugged to the mote, just interrupt the current program and
              assume that it matches the executable passed to ice-gdb.  This is  similar  to  "attaching"  to  a
              running program within gdb.

       --ignore-intr
              Pass  the --ignore-intr option to avarice.  The single-step commands in gdb (s, n) will then "step
              over" interrupt handlers (i.e., if an interrupt occurs, execution will resume for the duration  of
              the interrupt).

       --external
              Do  not  start avarice.  Instead, avr-gdb will attempt to connect to an already running avarice on
              port localhost:6423.

NEW GDB COMMANDS

       ice-restart
              Restart avarice.

       ice-load filename
              Download executable filename to the Atmel processor and start debugging it (this replaces the  gdb
              load command).

       target-ice
              Connect to a copy of avarice running on port localhost:6423.

DEBUGGING WITH JTAG ICE

       The JTAG ICE debugging environment has a few restrictions and changes:

       •   No  "soft"  breakpoints,  and  only  three  hardware  breakpoints.  The  break  command sets hardware
           breakpoints. The easiest way to deal with this restriction is to enable and  disable  breakpoints  as
           needed.

       •   Two 1-byte hardware watchpoints (but each hardware watchpoint takes away one hardware breakpoint). If
           you set a watchpoint on a variable which takes more than one byte, execution will be abysmally  slow.
           Instead it is better to do the following:

             watch *(char *)&myvariable

           which watches the least significant byte of myvariable.

       •   The  Atmel  AVR processors have a Harvard architecture (separate code and data buses). To distinguish
           data address 0 from code address 0, avr-gdb adds 0x800000 to all data addresses. Bear  this  in  mind
           when examining printed pointers, or when passing absolute addresses to gdb commands.

ENVIRONMENT

       AVARICE_ARGS
              Extra arguments to pass to avarice at startup.

SEE ALSO

       gdb(1), insight(1).

BUGS

       On  Windows,  the  ice-gdb and ice-insight commands only work in the cygwin environment. They do not work
       with the mingw environment.

                                                 August 22, 2003                                      ice-gdb(1)