27 Target::Process *_process;
28 std::vector<int> _programmedSignals;
29 std::map<uint64_t, size_t> _allocations;
30 std::map<uint64_t, Architecture::CPUState> _savedRegisters;
35 using Extension = ExtensionSet::Extension;
48 std::mutex _resumeSessionLock;
50 std::string _consoleBuffer;
54 EnvironmentBlock
const &env);
60 size_t getGPRSize()
const override;
63 ErrorCode onInterrupt(
Session &session)
override;
66 ErrorCode onQuerySupported(
Session &session,
67 Feature::Collection
const &remoteFeatures,
68 Feature::Collection &localFeatures)
const override;
69 ErrorCode onPassSignals(
Session &session,
70 std::vector<int>
const &signals)
override;
71 ErrorCode onProgramSignals(
Session &session,
72 std::vector<int>
const &signals)
override;
73 ErrorCode onNonStopMode(
Session &session,
bool enable)
override;
74 ErrorCode onSendInput(
Session &session, ByteVector
const &buf)
override;
77 ErrorCode onQueryCurrentThread(
Session &session,
79 ErrorCode onThreadIsAlive(
Session &session,
81 ErrorCode onQueryAttached(
Session &session, ProcessId pid,
82 bool &attachedProcess)
const override;
83 ErrorCode onQueryProcessInfo(
Session &session,
85 ErrorCode onQueryHardwareWatchpointCount(
Session &session,
86 size_t &count)
const override;
90 ErrorCode onQueryThreadList(
Session &session, ProcessId pid, ThreadId lastTid,
91 ThreadId &tid)
const override;
93 ErrorCode onQueryFileLoadAddress(
Session &session,
94 std::string
const &file_path,
98 ErrorCode onQueryRegisterInfo(
Session &session, uint32_t regno,
102 ErrorCode onQuerySharedLibrariesInfoAddress(
Session &session,
103 Address &address)
const override;
106 ErrorCode onXferRead(
Session &session, std::string
const &
object,
107 std::string
const &annex, uint64_t offset,
108 uint64_t length, std::string &buffer,
109 bool &last)
override;
112 ErrorCode onSetStdFile(
Session &session,
int fileno,
113 std::string
const &path)
override;
118 Architecture::GPRegisterValueVector ®s)
override;
119 ErrorCode onWriteGeneralRegisters(
Session &session,
121 std::vector<uint64_t>
const ®s)
override;
124 uint64_t &
id)
override;
126 uint64_t
id)
override;
129 uint32_t regno, std::string &value)
override;
132 std::string
const &value)
override;
136 size_t length, ByteVector &data)
override;
138 ByteVector
const &data,
size_t &nwritten)
override;
140 ErrorCode onAllocateMemory(
Session &session,
size_t size,
141 uint32_t permissions,
Address &address)
override;
142 ErrorCode onDeallocateMemory(
Session &session,
143 Address const &address)
override;
145 ErrorCode onQueryMemoryRegionInfo(
Session &session,
Address const &address,
149 ErrorCode onSetEnvironmentVariable(
Session &session, std::string
const &name,
150 std::string
const &value)
override;
151 ErrorCode onSetProgramArguments(
Session &session,
152 StringCollection
const &args)
override;
153 ErrorCode onQueryLaunchSuccess(
Session &session,
154 ProcessId pid)
const override;
157 ErrorCode onAttach(
Session &session, ProcessId pid, AttachMode mode,
159 ErrorCode onRunAttach(
Session &session, std::string
const &filename,
160 StringCollection
const &arguments,
164 ErrorCode onResume(
Session &session,
165 ThreadResumeAction::Collection
const &actions,
169 ErrorCode onDetach(
Session &session, ProcessId pid,
bool stopped)
override;
170 ErrorCode onExitServer(
Session &session)
override;
173 ErrorCode onInsertBreakpoint(
Session &session, BreakpointType type,
174 Address const &address, uint32_t size,
175 StringCollection
const &conditions,
176 StringCollection
const &commands,
177 bool persistentCommands)
override;
178 ErrorCode onRemoveBreakpoint(
Session &session, BreakpointType type,
179 Address const &address, uint32_t kind)
override;
183 ErrorCode queryStopInfo(
Session &session, Target::Thread *thread,
189 ErrorCode fetchStopInfoForAllThreads(
Session &session,
190 std::vector<StopInfo> &stops,
192 ErrorCode createThreadsStopInfo(
Session &session,
193 JSArray &threadsStopInfo)
override;
196 ErrorCode spawnProcess(StringCollection
const &args,
197 EnvironmentBlock
const &env);
198 void appendOutput(
char const *buf,
size_t size);
199 void applyEnabledExtensionsToProcess()
const;