libdebug.state package#
Submodules#
libdebug.state.resume_context module#
libdebug.state.thread_context module#
- class libdebug.state.thread_context.ThreadContext(thread_id: int, registers: RegisterHolder)[source]#
Bases:
object
This object represents a thread in the context of the target process. It holds information about the thread’s state, registers and stack.
- instruction_pointer: int#
The thread’s instruction pointer.
- syscall_arg0: int#
The thread’s syscall argument 0.
- syscall_arg1: int#
The thread’s syscall argument 1.
- syscall_arg2: int#
The thread’s syscall argument 2.
- syscall_arg3: int#
The thread’s syscall argument 3.
- syscall_arg4: int#
The thread’s syscall argument 4.
- syscall_arg5: int#
The thread’s syscall argument 5.
- syscall_number: int#
The thread’s syscall number.
- syscall_return: int#
The thread’s syscall return value.
- property dead: bool#
Whether the thread is dead.
- property memory: MemoryView#
The memory view of the debugged process.
- property process_id: int#
The process ID of the thread.
- property pid: int#
The process ID of the thread.
- property thread_id: int#
The thread ID.
- property tid: int#
The thread ID.
- property running: bool#
Whether the process is running.
- property exit_code: int | None#
The thread’s exit code.
- property exit_signal: str | None#
The thread’s exit signal.
- property signal: str | None#
The signal will be forwarded to the thread.
- step_until(position: int | str, max_steps: int = -1, file: str = 'default') None [source]#
Executes instructions of the process until the specified location is reached.
- Parameters:
position (int | bytes) – The location to reach.
max_steps (int, optional) – The maximum number of steps to execute. Defaults to -1.
file (str, optional) – The user-defined backing file to resolve the address in. Defaults to “default”
address ((libdebug will first try to solve the address as an absolute)
w.r.t. (then as a relative address)
file). (the "binary" map)
- finish(heuristic: str = 'backtrace') None [source]#
Continues execution until the current function returns or the process stops.
The command requires a heuristic to determine the end of the function. The available heuristics are: - backtrace: The debugger will place a breakpoint on the saved return address found on the stack and continue execution on all threads. - step-mode: The debugger will step on the specified thread until the current function returns. This will be slower.
- Parameters:
heuristic (str, optional) – The heuristic to use. Defaults to “backtrace”.
- su(position: int | str, max_steps: int = -1) None [source]#
Alias for the step_until method.
Executes instructions of the process until the specified location is reached.
- Parameters:
position (int | bytes) – The location to reach.
max_steps (int, optional) – The maximum number of steps to execute. Defaults to -1.
- fin(heuristic: str = 'backtrace') None [source]#
Alias for the finish method. Continues execution until the current function returns or the process stops.
The command requires a heuristic to determine the end of the function. The available heuristics are: - backtrace: The debugger will place a breakpoint on the saved return address found on the stack and continue execution on all threads. - step-mode: The debugger will step on the specified thread until the current function returns. This will be slower.
- Parameters:
heuristic (str, optional) – The heuristic to use. Defaults to “backtrace”.