## IAnjutaDebuggerInstruction IAnjutaDebuggerInstruction — Debugger interface for machine instruction |

## Stability Level

Unstable, unless otherwise indicated

## Functions

void | (*IAnjutaDebuggerInstructionCallback) ()
GQuark | ianjuta_debugger_instruction_error_quark ()
gboolean | ianjuta_debugger_instruction_disassemble ()
gboolean | ianjuta_debugger_instruction_run_from_address ()
gboolean | ianjuta_debugger_instruction_run_to_address ()
gboolean | ianjuta_debugger_instruction_step_in_instruction ()
gboolean | ianjuta_debugger_instruction_step_over_instruction ()

## Types and Values

#define | IANJUTA_DEBUGGER_INSTRUCTION_ERROR
struct | IAnjutaDebuggerInstructionALine
struct | IAnjutaDebuggerInstructionDisassembly

## Object Hierarchy

        GInterface
        ╰── IAnjutaDebuggerInstruction

## Includes

    #include <libanjuta/interfaces/ianjuta-debugger-instruction.h>

## Description

This interface is used to debuger as machine instruction level.

## Functions

### IAnjutaDebuggerInstructionCallback ()

    void
    (*IAnjutaDebuggerInstructionCallback) (const IAnjutaDebuggerInstructionDisassembly *data,
                                           gpointer user_data,
                                           GError *err);

This callback function is used to return a IAnjutaDebuggerInstructionDisassembly.

#### Parameters

data | a IAnjutaDebuggerInstructionDisassembly object |
user_data | user data passed to the function |
err | error |

### ianjuta_debugger_instruction_error_quark ()

    GQuark
    ianjuta_debugger_instruction_error_quark
                                   (void);

### ianjuta_debugger_instruction_disassemble ()

    gboolean
    ianjuta_debugger_instruction_disassemble
                                   (IAnjutaDebuggerInstruction *obj,
                                    gulong address,
                                    guint length,
                                    IAnjutaDebuggerInstructionCallback callback,
                                    gpointer user_data,
                                    GError **err);

Disassemble a part of the memory

#### Parameters

obj | Self |
address | Start address of the memory block |
length | Length of memory block |
callback | Call back with a IAnjutaDebuggerInstructionDisassembly as argument |
user_data | User data that is passed back to the callback |
err | Error propagation and reporting. |

#### Returns

TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.

### ianjuta_debugger_instruction_run_from_address ()

    gboolean
    ianjuta_debugger_instruction_run_from_address
                                   (IAnjutaDebuggerInstruction *obj,
                                    gulong address,
                                    GError **err);

Restart the program starting from address address

#### Parameters

obj | Self |
address | Run from this addresss |
err | Error propagation and reporting. |

#### Returns

TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.

### ianjuta_debugger_instruction_run_to_address ()

    gboolean
    ianjuta_debugger_instruction_run_to_address
                                   (IAnjutaDebuggerInstruction *obj,
                                    gulong address,
                                    GError **err);

Start the program until it reachs the address address

#### Parameters

obj | Self |
address | Run to this addresss |
err | Error propagation and reporting. |

#### Returns

TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.

### ianjuta_debugger_instruction_step_in_instruction ()

    gboolean
    ianjuta_debugger_instruction_step_in_instruction
                                   (IAnjutaDebuggerInstruction *obj,
                                    GError **err);

Execute one assembler instruction in the program.

#### Parameters

obj | Self |
err | Error propagation and reporting. |

#### Returns

TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.

### ianjuta_debugger_instruction_step_over_instruction ()

    gboolean
    ianjuta_debugger_instruction_step_over_instruction
                                   (IAnjutaDebuggerInstruction *obj,
                                    GError **err);

Execute one assembler instruction in the program, if the instruction is a function call, continues until the function returns.

#### Parameters

obj | Self |
err | Error propagation and reporting. |

#### Returns

TRUE if the request succeed and the callback is called. If FALSE, the callback will not be called.

## Types and Values

### IANJUTA_DEBUGGER_INSTRUCTION_ERROR

    #define IANJUTA_DEBUGGER_INSTRUCTION_ERROR ianjuta_debugger_instruction_error_quark()

### struct IAnjutaDebuggerInstructionALine

    struct IAnjutaDebuggerInstructionALine {
    	gulong address;
    	const gchar *label;
    	const gchar *text;
    };

Defines a disassembled line

#### Members

gulong `address`; | Address of the line |
const gchar *`label`; | Optional label |
const gchar *`text`; | Diassembled instruction on the line |

### struct IAnjutaDebuggerInstructionDisassembly

    struct IAnjutaDebuggerInstructionDisassembly {
    	guint size;
    	IAnjutaDebuggerInstructionALine data[];
    };

Represents a block of diassembled instructions

#### Members

guint `size`; | Number of line |
IAnjutaDebuggerInstructionALine `data`[]; | Array of all lines |