mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:07:34 +00:00
HackStudio: Add ability to attach debugger to a running process
This commit is contained in:
parent
eb16513165
commit
ff6fb2cb10
4 changed files with 52 additions and 12 deletions
|
@ -38,6 +38,7 @@ public:
|
|||
|
||||
void set_executable_path(DeprecatedString const& path) { m_executable_path = path; }
|
||||
void set_source_root(DeprecatedString const& source_root) { m_source_root = source_root; }
|
||||
void set_pid_to_attach(pid_t pid) { m_pid_to_attach = pid; }
|
||||
|
||||
Debug::DebugSession* session() { return m_debug_session.ptr(); }
|
||||
|
||||
|
@ -98,7 +99,7 @@ private:
|
|||
Debug::DebugInfo::SourcePosition create_source_position(DeprecatedString const& file, size_t line);
|
||||
|
||||
void start();
|
||||
int debugger_loop();
|
||||
int debugger_loop(Debug::DebugSession::DesiredInitialDebugeeState);
|
||||
|
||||
void remove_temporary_breakpoints();
|
||||
void do_step_out(PtraceRegisters const&);
|
||||
|
@ -106,6 +107,12 @@ private:
|
|||
void insert_temporary_breakpoint(FlatPtr address);
|
||||
void insert_temporary_breakpoint_at_return_address(PtraceRegisters const&);
|
||||
|
||||
struct CreateDebugSessionResult {
|
||||
NonnullOwnPtr<Debug::DebugSession> session;
|
||||
Debug::DebugSession::DesiredInitialDebugeeState initial_state { Debug::DebugSession::Stopped };
|
||||
};
|
||||
CreateDebugSessionResult create_debug_session();
|
||||
|
||||
OwnPtr<Debug::DebugSession> m_debug_session;
|
||||
DeprecatedString m_source_root;
|
||||
DebuggingState m_state;
|
||||
|
@ -117,6 +124,7 @@ private:
|
|||
Vector<Debug::DebugInfo::SourcePosition> m_breakpoints;
|
||||
|
||||
DeprecatedString m_executable_path;
|
||||
Optional<pid_t> m_pid_to_attach;
|
||||
|
||||
Function<HasControlPassedToUser(PtraceRegisters const&)> m_on_stopped_callback;
|
||||
Function<void()> m_on_continue_callback;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue