# Class: com.pnfsoftware.jeb.core.units.code.DefUseInfo

Def\-use information object provided by instruction for data\-flow analysis purposes. Can be subclassed.

## Constructor: DefUseInfo

Description: Create def\-use information with default flags.

## Constructor: DefUseInfo
- parameter: `flags`, type: `int`

Description: Create def\-use information.
parameter: flags: collection flags

## Field: def
Type: `com.pnfsoftware.jeb.core.units.code.IdRanges`
Description: verified defines / never null

## Field: defpot
Type: `com.pnfsoftware.jeb.core.units.code.IdRanges`
Description: *potential* defines
 may be null \(non\-null IFF the [#FLAG_INCLUDE_POTENTIALS](#FLAG_INCLUDE_POTENTIALS) flag was set\)
 must not intersect [#def](#def)

## Field: insnAddress
Type: `java.lang.Long`
Description: Instruction address, if known.

## Field: spoiled
Type: `com.pnfsoftware.jeb.core.units.code.IdRanges`
Description: *spoiled variables*, i.e. vars defined to unusable values a.k.a. collateral writes
 may be null \(non\-null IFF the [#FLAG_INCLUDE_SPOILED](#FLAG_INCLUDE_SPOILED) flag was set\)

## Field: use
Type: `com.pnfsoftware.jeb.core.units.code.IdRanges`
Description: verified uses / never null

## Field: usepot
Type: `com.pnfsoftware.jeb.core.units.code.IdRanges`
Description: *potential* uses
 may be null \(non\-null IFF the [#FLAG_INCLUDE_POTENTIALS](#FLAG_INCLUDE_POTENTIALS) flag was set\)
 must not intersect [#use](#use)

## Static Field: CONSERVATIVE
Type: `int`

Constant value: `3`
Description: Conservative collection flags.

## Static Field: FLAG_INCLUDE_POTENTIALS
Type: `int`

Constant value: `1`
Description: Include potential definitions and uses.

## Static Field: FLAG_INCLUDE_SPOILED
Type: `int`

Constant value: `2`
Description: Include spoiled variables.

## Method: clear

Description: Clear all collected information.

## Method: getDef
- return type: `com.pnfsoftware.jeb.core.units.code.IdRanges`

Description: Get defined variable ranges.
return: defined variable ranges

## Method: getDefinedVarIds
- return type: `java.util.List<java.lang.Integer>`

Description: Get defined variable ids.
return: defined variable ids

## Method: getInstructionAddress
- return type: `java.lang.Long`

Description: Get the instruction address.
return: instruction address, or null

## Method: getPotentiallyDefinedVarIds
- return type: `java.util.List<java.lang.Integer>`

Description: Get potentially defined variable ids.
return: potentially defined variable ids

## Method: getPotentiallyUsedVarIds
- return type: `java.util.List<java.lang.Integer>`

Description: Get potentially used variable ids.
return: potentially used variable ids

## Method: getSpoiledVarIds
- return type: `java.util.List<java.lang.Integer>`

Description: Get spoiled variable ids.
return: spoiled variable ids

## Method: getUse
- return type: `com.pnfsoftware.jeb.core.units.code.IdRanges`

Description: Get used variable ranges.
return: used variable ranges

## Method: getUsedVarIds
- return type: `java.util.List<java.lang.Integer>`

Description: Get used variable ids.
return: used variable ids

## Method: setInstructionAddress
- parameter: `addr`, type: `long`

Description: Set the instruction address.
parameter: addr: instruction address

## Method: shouldCollectPotentials
- return type: `boolean`

Description: Determine whether potential definitions and uses should be collected.
return: true if potential definitions and uses should be collected

## Method: shouldCollectSpoiled
- return type: `boolean`

Description: Determine whether spoiled variables should be collected.
return: true if spoiled variables should be collected

## Method: toString
- return type: `java.lang.String`


