#### 27.5.4 gdb/mi Breakpoint Information

When gdb reports information about a breakpoint, a tracepoint, a watchpoint, or a catchpoint, it uses a tuple with the following fields:

`number`
  The breakpoint number. For a breakpoint that represents one location of a multi-location breakpoint, this will be a dotted pair, like ‘`1.2`’.
`type`
  The type of the breakpoint. For ordinary breakpoints this will be ‘`breakpoint`’, but many values are possible.
`catch-type`
  If the type of the breakpoint is ‘`catchpoint`’, then this indicates the exact type of catchpoint.
`disp`
  This is the breakpoint disposition—either ‘`del`’, meaning that the breakpoint will be deleted at the next stop, or ‘`keep`’, meaning that the breakpoint will not be deleted.
`enabled`
  This indicates whether the breakpoint is enabled, in which case the value is ‘`y`’, or disabled, in which case the value is ‘`n`’. Note that this is not the same as the field `enable`.
`addr`
  The address of the breakpoint. This may be a hexidecimal number, giving the address; or the string ‘`<PENDING>`’, for a pending breakpoint; or the string ‘`<MULTIPLE>`’, for a breakpoint with multiple locations. This field will not be present if no address can be determined. For example, a watchpoint does not have an address.
`func`
  If known, the function in which the breakpoint appears. If not known, this field is not present.
`filename`
  The name of the source file which contains this function, if known. If not known, this field is not present.
`fullname`
  The full file name of the source file which contains this function, if known. If not known, this field is not present.
`line`
  The line number at which this breakpoint appears, if known. If not known, this field is not present.
`at`
  If the source file is not known, this field may be provided. If provided, this holds the address of the breakpoint, possibly followed by a symbol name.
`pending`
  If this breakpoint is pending, this field is present and holds the text used to set the breakpoint, as entered by the user.
`evaluated-by`
  Where this breakpoint's condition is evaluated, either ‘`host`’ or ‘`target`’.
`thread`
  If this is a thread-specific breakpoint, then this identifies the thread in which the breakpoint can trigger.
`task`
  If this breakpoint is restricted to a particular Ada task, then this field will hold the task identifier.
`cond`
  If the breakpoint is conditional, this is the condition expression.
`ignore`
  The ignore count of the breakpoint.
`enable`
  The enable count of the breakpoint.
`traceframe-usage`
  FIXME.
`static-tracepoint-marker-string-id`
  For a static tracepoint, the name of the static tracepoint marker.
`mask`
  For a masked watchpoint, this is the mask.
`pass`
  A tracepoint's pass count.
`original-location`
  The location of the breakpoint as originally specified by the user. This field is optional.
`times`
  The number of times the breakpoint has been hit.
`installed`
  This field is only given for tracepoints. This is either ‘`y`’, meaning that the tracepoint is installed, or ‘`n`’, meaning that it is not.
`what`
  Some extra data, the exact contents of which are type-dependent.

For example, here is what the output of `-break-insert` (see GDB/MI Breakpoint Commands) might be:

         -> -break-insert main
         <- ^done,bkpt={number="1",type="breakpoint",disp="keep",
             enabled="y",addr="0x08048564",func="main",file="myprog.c",
             fullname="/home/nickrob/myprog.c",line="68",thread-groups=["i1"],
             times="0"}
         <- (gdb)