## IAnjutaDebuggerRegister

IAnjutaDebuggerRegister — Register interface for debuggers

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

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

                        IAnjutaDebuggerRegisterData;
    #define             IANJUTA_DEBUGGER_REGISTER_ERROR
                        IAnjutaDebuggerRegister;
                        IAnjutaDebuggerRegisterIface;
    GQuark              ianjuta_debugger_register_error_quark
                                                            (void);
    gboolean            ianjuta_debugger_register_list      (IAnjutaDebuggerRegister *obj,
                                                             IAnjutaDebuggerCallback callback,
                                                             gpointer user_data,
                                                             GError **err);
    gboolean            ianjuta_debugger_register_update    (IAnjutaDebuggerRegister *obj,
                                                             IAnjutaDebuggerCallback callback,
                                                             gpointer user_data,
                                                             GError **err);
    gboolean            ianjuta_debugger_register_write     (IAnjutaDebuggerRegister *obj,
                                                             IAnjutaDebuggerRegisterData *value,
                                                             GError **err);

## Object Hierarchy

      GInterface
       +----IAnjutaDebuggerRegister

## Prerequisites

IAnjutaDebuggerRegister requires IAnjutaDebugger and GObject.

## Description

This interface is used to examine and change values of CPU registers.

## Details

### IAnjutaDebuggerRegisterData

    typedef struct {
    	guint num;
    	gchar *name;
    	gchar *value;
    } IAnjutaDebuggerRegisterData;

### IANJUTA_DEBUGGER_REGISTER_ERROR

    #define IANJUTA_DEBUGGER_REGISTER_ERROR ianjuta_debugger_register_error_quark()

### IAnjutaDebuggerRegister

    typedef struct _IAnjutaDebuggerRegister IAnjutaDebuggerRegister;

### IAnjutaDebuggerRegisterIface

    typedef struct {
    	IAnjutaDebuggerIface g_iface;

    	gboolean (*list) (IAnjutaDebuggerRegister *obj, IAnjutaDebuggerCallback callback,  gpointer user_data, GError **err);
    	gboolean (*update) (IAnjutaDebuggerRegister *obj, IAnjutaDebuggerCallback callback,  gpointer user_data, GError **err);
    	gboolean (*write) (IAnjutaDebuggerRegister *obj, IAnjutaDebuggerRegisterData *value, GError **err);
    } IAnjutaDebuggerRegisterIface;

### ianjuta_debugger_register_error_quark ()

    GQuark              ianjuta_debugger_register_error_quark
                                                            (void);

Returns : |

### ianjuta_debugger_register_list ()

    gboolean            ianjuta_debugger_register_list      (IAnjutaDebuggerRegister *obj,
                                                             IAnjutaDebuggerCallback callback,
                                                             gpointer user_data,
                                                             GError **err);

List all registers of the target. This function can be called without a program loaded, the value field of register structure is not filled.

`obj` : | Self
`callback` : | Callback to call with the register list
`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_register_update ()

    gboolean            ianjuta_debugger_register_update    (IAnjutaDebuggerRegister *obj,
                                                             IAnjutaDebuggerCallback callback,
                                                             gpointer user_data,
                                                             GError **err);

Return all modified registers since the last call. Only the num and value field are used.

`obj` : | Self
`callback` : | Callback call with the list of all modified registers
`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_register_write ()

    gboolean            ianjuta_debugger_register_write     (IAnjutaDebuggerRegister *obj,
                                                             IAnjutaDebuggerRegisterData *value,
                                                             GError **err);

Change the value of one register. Only the num and value field are used.

`obj` : | Self
`value` : | Modified register with a new value
`err` : | Error propagation and reporting.
Returns : | TRUE if the request succeed.