### Class

# Foundry Debugger

#### Description [src]

    abstract class Foundry.Debugger : Foundry.Contextual
      implements Json.Serializable {
      /* No available fields */
    }

Abstract base class for debugger implementations.

FoundryDebugger provides the core interface for debugging operations including breakpoint management, variable inspection, and execution control. Concrete implementations handle specific debugging protocols and backends while maintaining a consistent API.

#### Ancestors

- FoundryContextual
- GObject

#### Descendants

- FoundryDapDebugger

#### Implements

- JsonSerializable

#### Instance methods

###### foundry_debugger_can_move

Determines of the debugger can currently make `movement`.

deprecated: 1.1

###### foundry_debugger_connect_to_target

Connects to `target`.

###### foundry_debugger_disassemble

Disassemble the instructions found in the address range.

###### foundry_debugger_dup_name

Gets a name for the provider that is expected to be displayed to users such as “GNU Debugger”.

###### foundry_debugger_dup_primary_thread

Gets a copy of the primary thread (the first thread created by the debugger).

since: 1.1

###### foundry_debugger_emit_event

This should only be used by debugger implementations.

###### foundry_debugger_has_terminated

No description available.

###### foundry_debugger_initialize

This must be called before using the debugger instance and may only be called once.

###### foundry_debugger_interpret

Requests that the debugger interpret a command. This is typically the REPL of a debugger and can be used to bridge the normal interpreter of a debugger to the the user.

###### foundry_debugger_interrupt

This should cause the child process to pause.

deprecated: 1.1

###### foundry_debugger_list_address_space

Gets a `GListModel` of `FoundryDebuggerMappedRegion` that is updated based on the address mapping of the debuggee.

###### foundry_debugger_list_log_messages

Lists available log messages from the debugger instance.

since: 1.1

###### foundry_debugger_list_modules

Lists the known modules loaded into the address space.

###### foundry_debugger_list_thread_groups

List thread groups known to the debugger.

###### foundry_debugger_list_threads

List threads known to the debugger.

###### foundry_debugger_list_traps

List known traps (breakpoints, countpoints, watchpoints) that have been registered with the debugger.

###### foundry_debugger_move

Use `foundry_debugger_thread_move()` in new code.

deprecated: 1.1

###### foundry_debugger_send_signal

Send signal `signum` to debuggee.

###### foundry_debugger_stop

Stop the debugger fully. This should at least cause the inferior to be sent a terminating signal.

###### foundry_debugger_trap

Register a new breakpoint based on `params`.

##### Methods inherited from FoundryContextual (4)

###### foundry_contextual_acquire

This method provides a checked way to get a `context` for the contextual.

since: 1.1

###### foundry_contextual_dup_context

Gets the `FoundryContext` that `self` is a part of while safely increasing the reference count of the resulting `FoundryContext` by 1.

###### foundry_contextual_inhibit

Creates a new `FoundryInhibitor` that will keep the `FoundryContext` alive and prevent shutdown until `foundry_inhibitor_uninhibit()` is called or the `FoundryInhibitor` is finalized, whichever comes first.

###### foundry_contextual_log

No description available.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from JsonSerializable (8)

###### json_serializable_default_deserialize_property

Calls the default implementation of the `Json.SerializableIface.deserialize_property` virtual function.

###### json_serializable_default_serialize_property

Calls the default implementation of the `Json.SerializableIface.serialize_property` virtual function.

###### json_serializable_deserialize_property

Asks a `JsonSerializable` implementation to deserialize the property contained inside `property_node` and place its value into `value`.

###### json_serializable_find_property

Calls the `Json.SerializableIface.find_property` implementation on the `JsonSerializable` instance, which will return the property description for the given name.

###### json_serializable_get_property

Calls the `Json.SerializableIface.get_property` implementation on the `JsonSerializable` instance, which will get the value of the given property.

###### json_serializable_list_properties

Calls the `Json.SerializableIface.list_properties` implementation on the `JsonSerializable` instance, which will return the list of serializable properties.

###### json_serializable_serialize_property

Asks a `JsonSerializable` implementation to serialize an object property into a JSON node.

###### json_serializable_set_property

Calls the `Json.SerializableIface.set_property` implementation on the `JsonSerializable` instance, which will set the property with the given value.

#### Properties

###### Foundry.Debugger:address-space

No description available.

###### Foundry.Debugger:log-messages

No description available.

###### Foundry.Debugger:modules

No description available.

###### Foundry.Debugger:primary-thread

The first thread that was created by the debugger.

since: 1.1

###### Foundry.Debugger:terminated

If the debuggee has terminated.

since: 1.1

###### Foundry.Debugger:threads

No description available.

since: 1.1

###### Foundry.Debugger:traps

No description available.

##### Properties inherited from FoundryContextual (1)

###### Foundry.Contextual:context

No description available.

#### Signals

###### Foundry.Debugger::event

No description available.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct FoundryDebuggerClass {
      FoundryContextualClass parent_class;
      char* (* dup_name) (
        FoundryDebugger* self
      );
      DexFuture* (* initialize) (
        FoundryDebugger* self
      );
      DexFuture* (* connect_to_target) (
        FoundryDebugger* self,
        FoundryDebuggerTarget* target
      );
      GListModel* (* list_address_space) (
        FoundryDebugger* self
      );
      GListModel* (* list_modules) (
        FoundryDebugger* self
      );
      GListModel* (* list_traps) (
        FoundryDebugger* self
      );
      GListModel* (* list_threads) (
        FoundryDebugger* self
      );
      GListModel* (* list_thread_groups) (
        FoundryDebugger* self
      );
      DexFuture* (* disassemble) (
        FoundryDebugger* self,
        guint64 begin_address,
        guint64 end_address
      );
      DexFuture* (* interpret) (
        FoundryDebugger* self,
        const char* command
      );
      DexFuture* (* interrupt) (
        FoundryDebugger* self
      );
      DexFuture* (* stop) (
        FoundryDebugger* self
      );
      DexFuture* (* send_signal) (
        FoundryDebugger* self,
        int signum
      );
      DexFuture* (* move) (
        FoundryDebugger* self,
        FoundryDebuggerMovement movement
      );
      DexFuture* (* trap) (
        FoundryDebugger* self,
        FoundryDebuggerTrapParams* params
      );
      gboolean (* can_move) (
        FoundryDebugger* self,
        FoundryDebuggerMovement movement
      );
      void (* event) (
        FoundryDebugger* self,
        FoundryDebuggerEvent* event
      );
      GListModel* (* list_log_messages) (
        FoundryDebugger* self
      );
      FoundryDebuggerThread* (* dup_primary_thread) (
        FoundryDebugger* self
      );
      gboolean (* has_terminated) (
        FoundryDebugger* self
      );

    }

No description available.

###### Class members

`parent_class: FoundryContextualClass`

  No description available.

`dup_name: char* (* dup_name) ( FoundryDebugger* self )`

  No description available.

`initialize: DexFuture* (* initialize) ( FoundryDebugger* self )`

  No description available.

`connect_to_target: DexFuture* (* connect_to_target) ( FoundryDebugger* self, FoundryDebuggerTarget* target )`

  No description available.

`list_address_space: GListModel* (* list_address_space) ( FoundryDebugger* self )`

  No description available.

`list_modules: GListModel* (* list_modules) ( FoundryDebugger* self )`

  No description available.

`list_traps: GListModel* (* list_traps) ( FoundryDebugger* self )`

  No description available.

`list_threads: GListModel* (* list_threads) ( FoundryDebugger* self )`

  No description available.

`list_thread_groups: GListModel* (* list_thread_groups) ( FoundryDebugger* self )`

  No description available.

`disassemble: DexFuture* (* disassemble) ( FoundryDebugger* self, guint64 begin_address, guint64 end_address )`

  No description available.

`interpret: DexFuture* (* interpret) ( FoundryDebugger* self, const char* command )`

  No description available.

`interrupt: DexFuture* (* interrupt) ( FoundryDebugger* self )`

  No description available.

`stop: DexFuture* (* stop) ( FoundryDebugger* self )`

  No description available.

`send_signal: DexFuture* (* send_signal) ( FoundryDebugger* self, int signum )`

  No description available.

`move: DexFuture* (* move) ( FoundryDebugger* self, FoundryDebuggerMovement movement )`

  No description available.

`trap: DexFuture* (* trap) ( FoundryDebugger* self, FoundryDebuggerTrapParams* params )`

  No description available.

`can_move: gboolean (* can_move) ( FoundryDebugger* self, FoundryDebuggerMovement movement )`

  No description available.

`event: void (* event) ( FoundryDebugger* self, FoundryDebuggerEvent* event )`

  No description available.

`list_log_messages: GListModel* (* list_log_messages) ( FoundryDebugger* self )`

  No description available.

`dup_primary_thread: FoundryDebuggerThread* (* dup_primary_thread) ( FoundryDebugger* self )`

  No description available.

`has_terminated: gboolean (* has_terminated) ( FoundryDebugger* self )`

  No description available.

#### Virtual methods

###### Foundry.DebuggerClass.can_move

Determines of the debugger can currently make `movement`.

deprecated: 1.1

###### Foundry.DebuggerClass.connect_to_target

Connects to `target`.

###### Foundry.DebuggerClass.disassemble

Disassemble the instructions found in the address range.

###### Foundry.DebuggerClass.dup_name

Gets a name for the provider that is expected to be displayed to users such as “GNU Debugger”.

###### Foundry.DebuggerClass.dup_primary_thread

Gets a copy of the primary thread (the first thread created by the debugger).

since: 1.1

###### Foundry.DebuggerClass.event

No description available.

###### Foundry.DebuggerClass.has_terminated

No description available.

###### Foundry.DebuggerClass.initialize

This must be called before using the debugger instance and may only be called once.

###### Foundry.DebuggerClass.interpret

Requests that the debugger interpret a command. This is typically the REPL of a debugger and can be used to bridge the normal interpreter of a debugger to the the user.

###### Foundry.DebuggerClass.interrupt

This should cause the child process to pause.

deprecated: 1.1

###### Foundry.DebuggerClass.list_address_space

Gets a `GListModel` of `FoundryDebuggerMappedRegion` that is updated based on the address mapping of the debuggee.

###### Foundry.DebuggerClass.list_log_messages

Lists available log messages from the debugger instance.

since: 1.1

###### Foundry.DebuggerClass.list_modules

Lists the known modules loaded into the address space.

###### Foundry.DebuggerClass.list_thread_groups

List thread groups known to the debugger.

###### Foundry.DebuggerClass.list_threads

List threads known to the debugger.

###### Foundry.DebuggerClass.list_traps

List known traps (breakpoints, countpoints, watchpoints) that have been registered with the debugger.

###### Foundry.DebuggerClass.move

Use `foundry_debugger_thread_move()` in new code.

deprecated: 1.1

###### Foundry.DebuggerClass.send_signal

Send signal `signum` to debuggee.

###### Foundry.DebuggerClass.stop

Stop the debugger fully. This should at least cause the inferior to be sent a terminating signal.

###### Foundry.DebuggerClass.trap

Register a new breakpoint based on `params`.