LLDB  mainline
GDBRemoteCommunicationClient.h
Go to the documentation of this file.
1 //===-- GDBRemoteCommunicationClient.h --------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_SOURCE_PLUGINS_PROCESS_GDB_REMOTE_GDBREMOTECOMMUNICATIONCLIENT_H
10 #define LLDB_SOURCE_PLUGINS_PROCESS_GDB_REMOTE_GDBREMOTECOMMUNICATIONCLIENT_H
11 
12 #include "GDBRemoteClientBase.h"
13 
14 #include <chrono>
15 #include <map>
16 #include <mutex>
17 #include <string>
18 #include <vector>
19 
20 #include "lldb/Host/File.h"
21 #include "lldb/Utility/ArchSpec.h"
22 #include "lldb/Utility/GDBRemote.h"
26 #if defined(_WIN32)
28 #endif
29 
30 #include "llvm/ADT/Optional.h"
31 #include "llvm/Support/VersionTuple.h"
32 
33 namespace lldb_private {
34 namespace process_gdb_remote {
35 
36 /// The offsets used by the target when relocating the executable. Decoded from
37 /// qOffsets packet response.
38 struct QOffsets {
39  /// If true, the offsets field describes segments. Otherwise, it describes
40  /// sections.
41  bool segments;
42 
43  /// The individual offsets. Section offsets have two or three members.
44  /// Segment offsets have either one of two.
45  std::vector<uint64_t> offsets;
46 };
47 inline bool operator==(const QOffsets &a, const QOffsets &b) {
48  return a.segments == b.segments && a.offsets == b.offsets;
49 }
50 llvm::raw_ostream &operator<<(llvm::raw_ostream &os, const QOffsets &offsets);
51 
52 // A trivial struct used to return a pair of PID and TID.
53 struct PidTid {
54  uint64_t pid;
55  uint64_t tid;
56 };
57 
59 public:
61 
63 
64  // After connecting, send the handshake to the server to make sure
65  // we are communicating with it.
66  bool HandshakeWithServer(Status *error_ptr);
67 
68  // For packets which specify a range of output to be returned,
69  // return all of the output via a series of request packets of the form
70  // <prefix>0,<size>
71  // <prefix><size>,<size>
72  // <prefix><size>*2,<size>
73  // <prefix><size>*3,<size>
74  // ...
75  // until a "$l..." packet is received, indicating the end.
76  // (size is in hex; this format is used by a standard gdbserver to
77  // return the given portion of the output specified by <prefix>;
78  // for example, "qXfer:libraries-svr4:read::fff,1000" means
79  // "return a chunk of the xml description file for shared
80  // library load addresses, where the chunk starts at offset 0xfff
81  // and continues for 0x1000 bytes").
82  // Concatenate the resulting server response packets together and
83  // return in response_string. If any packet fails, the return value
84  // indicates that failure and the returned string value is undefined.
86  SendPacketsAndConcatenateResponses(const char *send_payload_prefix,
87  std::string &response_string);
88 
90 
91  // This packet is usually sent first and the boolean return value
92  // indicates if the packet was send and any response was received
93  // even in the response is UNIMPLEMENTED. If the packet failed to
94  // get a response, then false is returned. This quickly tells us
95  // if we were able to connect and communicate with the remote GDB
96  // server
98 
100 
101  lldb::pid_t GetCurrentProcessID(bool allow_lazy = true);
102 
103  bool GetLaunchSuccess(std::string &error_str);
104 
105  bool LaunchGDBServer(const char *remote_accept_hostname, lldb::pid_t &pid,
106  uint16_t &port, std::string &socket_name);
107 
108  size_t QueryGDBServer(
109  std::vector<std::pair<uint16_t, std::string>> &connection_urls);
110 
112 
113  /// Sends a GDB remote protocol 'A' packet that delivers program
114  /// arguments to the remote server.
115  ///
116  /// \param[in] launch_info
117  /// A NULL terminated array of const C strings to use as the
118  /// arguments.
119  ///
120  /// \return
121  /// Zero if the response was "OK", a positive value if the
122  /// the response was "Exx" where xx are two hex digits, or
123  /// -1 if the call is unsupported or any other unexpected
124  /// response was received.
125  int SendArgumentsPacket(const ProcessLaunchInfo &launch_info);
126 
127  /// Sends a "QEnvironment:NAME=VALUE" packet that will build up the
128  /// environment that will get used when launching an application
129  /// in conjunction with the 'A' packet. This function can be called
130  /// multiple times in a row in order to pass on the desired
131  /// environment that the inferior should be launched with.
132  ///
133  /// \param[in] name_equal_value
134  /// A NULL terminated C string that contains a single environment
135  /// in the format "NAME=VALUE".
136  ///
137  /// \return
138  /// Zero if the response was "OK", a positive value if the
139  /// the response was "Exx" where xx are two hex digits, or
140  /// -1 if the call is unsupported or any other unexpected
141  /// response was received.
142  int SendEnvironmentPacket(char const *name_equal_value);
143  int SendEnvironment(const Environment &env);
144 
145  int SendLaunchArchPacket(const char *arch);
146 
147  int SendLaunchEventDataPacket(const char *data,
148  bool *was_supported = nullptr);
149 
150  /// Sends a GDB remote protocol 'I' packet that delivers stdin
151  /// data to the remote process.
152  ///
153  /// \param[in] data
154  /// A pointer to stdin data.
155  ///
156  /// \param[in] data_len
157  /// The number of bytes available at \a data.
158  ///
159  /// \return
160  /// Zero if the attach was successful, or an error indicating
161  /// an error code.
162  int SendStdinNotification(const char *data, size_t data_len);
163 
164  /// Sets the path to use for stdin/out/err for a process
165  /// that will be launched with the 'A' packet.
166  ///
167  /// \param[in] file_spec
168  /// The path to use for stdin/out/err
169  ///
170  /// \return
171  /// Zero if the for success, or an error code for failure.
172  int SetSTDIN(const FileSpec &file_spec);
173  int SetSTDOUT(const FileSpec &file_spec);
174  int SetSTDERR(const FileSpec &file_spec);
175 
176  /// Sets the disable ASLR flag to \a enable for a process that will
177  /// be launched with the 'A' packet.
178  ///
179  /// \param[in] enable
180  /// A boolean value indicating whether to disable ASLR or not.
181  ///
182  /// \return
183  /// Zero if the for success, or an error code for failure.
184  int SetDisableASLR(bool enable);
185 
186  /// Sets the DetachOnError flag to \a enable for the process controlled by the
187  /// stub.
188  ///
189  /// \param[in] enable
190  /// A boolean value indicating whether to detach on error or not.
191  ///
192  /// \return
193  /// Zero if the for success, or an error code for failure.
194  int SetDetachOnError(bool enable);
195 
196  /// Sets the working directory to \a path for a process that will
197  /// be launched with the 'A' packet for non platform based
198  /// connections. If this packet is sent to a GDB server that
199  /// implements the platform, it will change the current working
200  /// directory for the platform process.
201  ///
202  /// \param[in] working_dir
203  /// The path to a directory to use when launching our process
204  ///
205  /// \return
206  /// Zero if the for success, or an error code for failure.
207  int SetWorkingDir(const FileSpec &working_dir);
208 
209  /// Gets the current working directory of a remote platform GDB
210  /// server.
211  ///
212  /// \param[out] working_dir
213  /// The current working directory on the remote platform.
214  ///
215  /// \return
216  /// Boolean for success
217  bool GetWorkingDir(FileSpec &working_dir);
218 
219  lldb::addr_t AllocateMemory(size_t size, uint32_t permissions);
220 
221  bool DeallocateMemory(lldb::addr_t addr);
222 
223  Status Detach(bool keep_stopped, lldb::pid_t pid = LLDB_INVALID_PROCESS_ID);
224 
226 
228 
229  Status GetWatchpointSupportInfo(uint32_t &num, bool &after,
230  const ArchSpec &arch);
231 
233  const ArchSpec &arch);
234 
235  const ArchSpec &GetHostArchitecture();
236 
237  std::chrono::seconds GetHostDefaultPacketTimeout();
238 
240 
241  void GetRemoteQSupported();
242 
243  bool GetVContSupported(char flavor);
244 
246 
247  bool GetxPacketSupported();
248 
250 
252 
253  void ResetDiscoverableSettings(bool did_exec);
254 
255  bool GetHostInfo(bool force = false);
256 
257  bool GetDefaultThreadId(lldb::tid_t &tid);
258 
259  llvm::VersionTuple GetOSVersion();
260 
261  llvm::VersionTuple GetMacCatalystVersion();
262 
263  bool GetOSBuildString(std::string &s);
264 
266 
268 
270 
271  bool GetHostname(std::string &s);
272 
274 
276 
277  bool GetProcessInfo(lldb::pid_t pid, ProcessInstanceInfo &process_info);
278 
279  uint32_t FindProcesses(const ProcessInstanceInfoMatch &process_match_info,
280  ProcessInstanceInfoList &process_infos);
281 
282  bool GetUserName(uint32_t uid, std::string &name);
283 
284  bool GetGroupName(uint32_t gid, std::string &name);
285 
286  bool HasFullVContSupport() { return GetVContSupported('A'); }
287 
288  bool HasAnyVContSupport() { return GetVContSupported('a'); }
289 
290  bool GetStopReply(StringExtractorGDBRemote &response);
291 
293 
295  switch (type) {
296  case eBreakpointSoftware:
297  return m_supports_z0;
298  case eBreakpointHardware:
299  return m_supports_z1;
300  case eWatchpointWrite:
301  return m_supports_z2;
302  case eWatchpointRead:
303  return m_supports_z3;
305  return m_supports_z4;
306  default:
307  return false;
308  }
309  }
310 
312  GDBStoppointType type, // Type of breakpoint or watchpoint
313  bool insert, // Insert or remove?
314  lldb::addr_t addr, // Address of breakpoint or watchpoint
315  uint32_t length, // Byte Size of breakpoint or watchpoint
316  std::chrono::seconds interrupt_timeout); // Time to wait for an interrupt
317 
318  bool SetNonStopMode(const bool enable);
319 
320  void TestPacketSpeed(const uint32_t num_packets, uint32_t max_send,
321  uint32_t max_recv, uint64_t recv_amount, bool json,
322  Stream &strm);
323 
324  // This packet is for testing the speed of the interface only. Both
325  // the client and server need to support it, but this allows us to
326  // measure the packet speed without any other work being done on the
327  // other end and avoids any of that work affecting the packet send
328  // and response times.
329  bool SendSpeedTestPacket(uint32_t send_size, uint32_t recv_size);
330 
331  llvm::Optional<PidTid>
332  SendSetCurrentThreadPacket(uint64_t tid, uint64_t pid, char op);
333 
334  bool SetCurrentThread(uint64_t tid,
336 
337  bool SetCurrentThreadForRun(uint64_t tid,
339 
341 
343 
345 
347 
348  uint64_t GetRemoteMaxPacketSize();
349 
350  bool GetEchoSupported();
351 
353 
355 
357 
359 
361  {
362  // Uncomment this to have lldb pretend the debug server doesn't respond to
363  // alloc/dealloc memory packets.
364  // m_supports_alloc_dealloc_memory = lldb_private::eLazyBoolNo;
366  }
367 
368  std::vector<std::pair<lldb::pid_t, lldb::tid_t>>
369  GetCurrentProcessAndThreadIDs(bool &sequence_mutex_unavailable);
370 
371  size_t GetCurrentThreadIDs(std::vector<lldb::tid_t> &thread_ids,
372  bool &sequence_mutex_unavailable);
373 
374  lldb::user_id_t OpenFile(const FileSpec &file_spec, File::OpenOptions flags,
375  mode_t mode, Status &error);
376 
378 
379  llvm::Optional<GDBRemoteFStatData> FStat(lldb::user_id_t fd);
380 
381  // NB: this is just a convenience wrapper over open() + fstat(). It does not
382  // work if the file cannot be opened.
383  llvm::Optional<GDBRemoteFStatData> Stat(const FileSpec &file_spec);
384 
385  lldb::user_id_t GetFileSize(const FileSpec &file_spec);
386 
388  bool only_dir);
389 
390  Status GetFilePermissions(const FileSpec &file_spec,
391  uint32_t &file_permissions);
392 
393  Status SetFilePermissions(const FileSpec &file_spec,
394  uint32_t file_permissions);
395 
396  uint64_t ReadFile(lldb::user_id_t fd, uint64_t offset, void *dst,
397  uint64_t dst_len, Status &error);
398 
399  uint64_t WriteFile(lldb::user_id_t fd, uint64_t offset, const void *src,
400  uint64_t src_len, Status &error);
401 
402  Status CreateSymlink(const FileSpec &src, const FileSpec &dst);
403 
404  Status Unlink(const FileSpec &file_spec);
405 
406  Status MakeDirectory(const FileSpec &file_spec, uint32_t mode);
407 
408  bool GetFileExists(const FileSpec &file_spec);
409 
411  llvm::StringRef command,
412  const FileSpec &working_dir, // Pass empty FileSpec to use the current
413  // working directory
414  int *status_ptr, // Pass nullptr if you don't want the process exit status
415  int *signo_ptr, // Pass nullptr if you don't want the signal that caused
416  // the process to exit
418  *command_output, // Pass nullptr if you don't want the command output
419  const Timeout<std::micro> &timeout);
420 
421  bool CalculateMD5(const FileSpec &file_spec, uint64_t &high, uint64_t &low);
422 
423  lldb::DataBufferSP ReadRegister(
424  lldb::tid_t tid,
425  uint32_t
426  reg_num); // Must be the eRegisterKindProcessPlugin register number
427 
428  lldb::DataBufferSP ReadAllRegisters(lldb::tid_t tid);
429 
430  bool
432  uint32_t reg_num, // eRegisterKindProcessPlugin register number
433  llvm::ArrayRef<uint8_t> data);
434 
435  bool WriteAllRegisters(lldb::tid_t tid, llvm::ArrayRef<uint8_t> data);
436 
437  bool SaveRegisterState(lldb::tid_t tid, uint32_t &save_id);
438 
439  bool RestoreRegisterState(lldb::tid_t tid, uint32_t save_id);
440 
441  bool SyncThreadState(lldb::tid_t tid);
442 
443  const char *GetGDBServerProgramName();
444 
446 
447  bool AvoidGPackets(ProcessGDBRemote *process);
448 
450 
452 
454 
456 
458 
459  lldb::DataBufferSP ReadMemoryTags(lldb::addr_t addr, size_t len,
460  int32_t type);
461 
462  Status WriteMemoryTags(lldb::addr_t addr, size_t len, int32_t type,
463  const std::vector<uint8_t> &tags);
464 
465  /// Use qOffsets to query the offset used when relocating the target
466  /// executable. If successful, the returned structure will contain at least
467  /// one value in the offsets field.
468  llvm::Optional<QOffsets> GetQOffsets();
469 
470  bool GetModuleInfo(const FileSpec &module_file_spec,
471  const ArchSpec &arch_spec, ModuleSpec &module_spec);
472 
473  llvm::Optional<std::vector<ModuleSpec>>
474  GetModulesInfo(llvm::ArrayRef<FileSpec> module_file_specs,
475  const llvm::Triple &triple);
476 
477  bool ReadExtFeature(const lldb_private::ConstString object,
478  const lldb_private::ConstString annex, std::string &out,
479  lldb_private::Status &err);
480 
482 
483  // Sends QPassSignals packet to the server with given signals to ignore.
484  Status SendSignalsToIgnore(llvm::ArrayRef<int32_t> signals);
485 
486  /// Return the feature set supported by the gdb-remote server.
487  ///
488  /// This method returns the remote side's response to the qSupported
489  /// packet. The response is the complete string payload returned
490  /// to the client.
491  ///
492  /// \return
493  /// The string returned by the server to the qSupported query.
495  return m_qSupported_response;
496  }
497 
498  /// Return the array of async JSON packet types supported by the remote.
499  ///
500  /// This method returns the remote side's array of supported JSON
501  /// packet types as a list of type names. Each of the results are
502  /// expected to have an Enable{type_name} command to enable and configure
503  /// the related feature. Each type_name for an enabled feature will
504  /// possibly send async-style packets that contain a payload of a
505  /// binhex-encoded JSON dictionary. The dictionary will have a
506  /// string field named 'type', that contains the type_name of the
507  /// supported packet type.
508  ///
509  /// There is a Plugin category called structured-data plugins.
510  /// A plugin indicates whether it knows how to handle a type_name.
511  /// If so, it can be used to process the async JSON packet.
512  ///
513  /// \return
514  /// The string returned by the server to the qSupported query.
516 
517  /// Configure a StructuredData feature on the remote end.
518  ///
519  /// \see \b Process::ConfigureStructuredData(...) for details.
520  Status
522  const StructuredData::ObjectSP &config_sp);
523 
524  llvm::Expected<TraceSupportedResponse>
525  SendTraceSupported(std::chrono::seconds interrupt_timeout);
526 
527  llvm::Error SendTraceStart(const llvm::json::Value &request,
528  std::chrono::seconds interrupt_timeout);
529 
531  std::chrono::seconds interrupt_timeout);
532 
533  llvm::Expected<std::string>
534  SendTraceGetState(llvm::StringRef type,
535  std::chrono::seconds interrupt_timeout);
536 
537  llvm::Expected<std::vector<uint8_t>>
539  std::chrono::seconds interrupt_timeout);
540 
541  bool GetSaveCoreSupported() const;
542 
543 protected:
582 
593 
594  /// Current gdb remote protocol process identifier for all other operations
596  /// Current gdb remote protocol process identifier for continue, step, etc
598  /// Current gdb remote protocol thread identifier for all other operations
600  /// Current gdb remote protocol thread identifier for continue, step, etc
602 
605 
608  llvm::VersionTuple m_os_version;
609  llvm::VersionTuple m_maccatalyst_version;
613  std::string m_gdb_server_name; // from reply to qGDBServerVersion, empty if
614  // qGDBServerVersion is not supported
616  UINT32_MAX; // from reply to qGDBServerVersion, zero if
617  // qGDBServerVersion is not supported
618  std::chrono::seconds m_default_packet_timeout;
619  int m_target_vm_page_size = 0; // target system VM page size; 0 unspecified
620  uint64_t m_max_packet_size = 0; // as returned by qSupported
621  std::string m_qSupported_response; // the complete response to qSupported
622 
625 
626  std::vector<MemoryRegionInfo> m_qXfer_memory_map;
628 
629  bool GetCurrentProcessInfo(bool allow_lazy_pid = true);
630 
631  bool GetGDBServerVersion();
632 
633  // Given the list of compression types that the remote debug stub can support,
634  // possibly enable compression if we find an encoding we can handle.
636  llvm::ArrayRef<llvm::StringRef> supported_compressions);
637 
639  ProcessInstanceInfo &process_info);
640 
641  void OnRunPacketSent(bool first) override;
642 
644  lldb::tid_t tid, StreamString &&payload,
645  StringExtractorGDBRemote &response);
646 
648  lldb::tid_t thread_id,
649  llvm::MutableArrayRef<uint8_t> &buffer,
650  size_t offset);
651 
653 
655  MemoryRegionInfo &region);
656 
657  LazyBool GetThreadPacketSupported(lldb::tid_t tid, llvm::StringRef packetStr);
658 
659 private:
662  operator=(const GDBRemoteCommunicationClient &) = delete;
663 };
664 
665 } // namespace process_gdb_remote
666 } // namespace lldb_private
667 
668 #endif // LLDB_SOURCE_PLUGINS_PROCESS_GDB_REMOTE_GDBREMOTECOMMUNICATIONCLIENT_H
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetSaveCoreSupported
bool GetSaveCoreSupported() const
Definition: GDBRemoteCommunicationClient.cpp:528
lldb_private::process_gdb_remote::QOffsets::offsets
std::vector< uint64_t > offsets
The individual offsets.
Definition: GDBRemoteCommunicationClient.h:45
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendGDBStoppointTypePacket
uint8_t SendGDBStoppointTypePacket(GDBStoppointType type, bool insert, lldb::addr_t addr, uint32_t length, std::chrono::seconds interrupt_timeout)
Definition: GDBRemoteCommunicationClient.cpp:2828
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendTraceGetBinaryData
llvm::Expected< std::vector< uint8_t > > SendTraceGetBinaryData(const TraceGetBinaryDataRequest &request, std::chrono::seconds interrupt_timeout)
Definition: GDBRemoteCommunicationClient.cpp:3735
lldb_private::ProcessInstanceInfo
Definition: ProcessInfo.h:108
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::WriteFile
uint64_t WriteFile(lldb::user_id_t fd, uint64_t offset, const void *src, uint64_t src_len, Status &error)
Definition: GDBRemoteCommunicationClient.cpp:3310
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SyncThreadState
bool SyncThreadState(lldb::tid_t tid)
Definition: GDBRemoteCommunicationClient.cpp:3593
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_vFileExists
bool m_supports_vFileExists
Definition: GDBRemoteCommunicationClient.h:591
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qSaveCore
LazyBool m_supports_qSaveCore
Definition: GDBRemoteCommunicationClient.h:581
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_not_sending_acks
LazyBool m_supports_not_sending_acks
Definition: GDBRemoteCommunicationClient.h:544
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_host_arch
ArchSpec m_host_arch
Definition: GDBRemoteCommunicationClient.h:606
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetSharedCacheInfoSupported
bool GetSharedCacheInfoSupported()
Definition: GDBRemoteCommunicationClient.cpp:595
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetRemoteQSupported
void GetRemoteQSupported()
Definition: GDBRemoteCommunicationClient.cpp:324
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetLoadedDynamicLibrariesInfosSupported
bool GetLoadedDynamicLibrariesInfosSupported()
Definition: GDBRemoteCommunicationClient.cpp:581
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_memory_tagging
LazyBool m_supports_memory_tagging
Definition: GDBRemoteCommunicationClient.h:580
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_os_kernel
std::string m_os_kernel
Definition: GDBRemoteCommunicationClient.h:611
lldb_private::process_gdb_remote::operator==
bool operator==(const QOffsets &a, const QOffsets &b)
Definition: GDBRemoteCommunicationClient.h:47
lldb_private::ArchSpec
Definition: ArchSpec.h:33
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetSTDIN
int SetSTDIN(const FileSpec &file_spec)
Sets the path to use for stdin/out/err for a process that will be launched with the 'A' packet.
Definition: GDBRemoteCommunicationClient.cpp:1911
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::FindProcesses
uint32_t FindProcesses(const ProcessInstanceInfoMatch &process_match_info, ProcessInstanceInfoList &process_infos)
Definition: GDBRemoteCommunicationClient.cpp:2293
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::QueryNoAckModeSupported
bool QueryNoAckModeSupported()
Definition: GDBRemoteCommunicationClient.cpp:193
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQPassSignalsSupported
bool GetQPassSignalsSupported()
Definition: GDBRemoteCommunicationClient.cpp:137
lldb_private::TraceGetBinaryDataRequest
jLLDBTraceGetBinaryData gdb-remote packet
Definition: TraceGDBRemotePackets.h:132
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qfProcessInfo
bool m_supports_qfProcessInfo
Definition: GDBRemoteCommunicationClient.h:583
GDBRemoteClientBase.h
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetMacCatalystVersion
llvm::VersionTuple GetMacCatalystVersion()
Definition: GDBRemoteCommunicationClient.cpp:1020
LLDB_INVALID_PROCESS_ID
#define LLDB_INVALID_PROCESS_ID
Definition: lldb-defines.h:93
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::TestPacketSpeed
void TestPacketSpeed(const uint32_t num_packets, uint32_t max_send, uint32_t max_recv, uint64_t recv_amount, bool json, Stream &strm)
Definition: GDBRemoteCommunicationClient.cpp:2491
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_x
LazyBool m_supports_x
Definition: GDBRemoteCommunicationClient.h:565
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_vCont_any
LazyBool m_supports_vCont_any
Definition: GDBRemoteCommunicationClient.h:548
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetUserName
bool GetUserName(uint32_t uid, std::string &name)
Definition: GDBRemoteCommunicationClient.cpp:2388
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_gdb_server_name
std::string m_gdb_server_name
Definition: GDBRemoteCommunicationClient.h:613
lldb_private::StructuredData::Array
Definition: StructuredData.h:165
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_vCont_c
LazyBool m_supports_vCont_c
Definition: GDBRemoteCommunicationClient.h:549
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient
Definition: GDBRemoteCommunicationClient.h:58
lldb_private::process_gdb_remote::eWatchpointReadWrite
@ eWatchpointReadWrite
Definition: GDBRemoteCommunication.h:41
StructuredData.h
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetWorkingDir
int SetWorkingDir(const FileSpec &working_dir)
Sets the working directory to path for a process that will be launched with the 'A' packet for non pl...
Definition: GDBRemoteCommunicationClient.cpp:1987
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::QueryGDBServer
size_t QueryGDBServer(std::vector< std::pair< uint16_t, std::string >> &connection_urls)
Definition: GDBRemoteCommunicationClient.cpp:2681
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetNonStopMode
bool SetNonStopMode(const bool enable)
Definition: GDBRemoteCommunicationClient.cpp:2442
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostArchitecture
const ArchSpec & GetHostArchitecture()
Definition: GDBRemoteCommunicationClient.cpp:1450
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_vFileSize
bool m_supports_vFileSize
Definition: GDBRemoteCommunicationClient.h:590
lldb_private::File::OpenOptions
OpenOptions
Definition: File.h:48
lldb_private::process_gdb_remote::GDBRemoteCommunication::PacketResult
PacketResult
Definition: GDBRemoteCommunication.h:92
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qThreadStopInfo
bool m_supports_qThreadStopInfo
Definition: GDBRemoteCommunicationClient.h:585
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_maccatalyst_version
llvm::VersionTuple m_maccatalyst_version
Definition: GDBRemoteCommunicationClient.h:609
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::MaybeEnableCompression
void MaybeEnableCompression(llvm::ArrayRef< llvm::StringRef > supported_compressions)
Definition: GDBRemoteCommunicationClient.cpp:1102
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetDefaultThreadId
bool GetDefaultThreadId(lldb::tid_t &tid)
Definition: GDBRemoteCommunicationClient.cpp:1194
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetMemoryRegionInfo
Status GetMemoryRegionInfo(lldb::addr_t addr, MemoryRegionInfo &range_info)
Definition: GDBRemoteCommunicationClient.cpp:1566
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_curr_pid
lldb::pid_t m_curr_pid
Current gdb remote protocol process identifier for all other operations.
Definition: GDBRemoteCommunicationClient.h:595
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_jThreadsInfo
bool m_supports_jThreadsInfo
Definition: GDBRemoteCommunicationClient.h:589
lldb_private::Process
Definition: Process.h:342
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_max_packet_size
uint64_t m_max_packet_size
Definition: GDBRemoteCommunicationClient.h:620
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_QEnvironment
bool m_supports_QEnvironment
Definition: GDBRemoteCommunicationClient.h:587
lldb_private::process_gdb_remote::QOffsets::segments
bool segments
If true, the offsets field describes segments.
Definition: GDBRemoteCommunicationClient.h:41
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_p
LazyBool m_supports_p
Definition: GDBRemoteCommunicationClient.h:564
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_qSupported_response
std::string m_qSupported_response
Definition: GDBRemoteCommunicationClient.h:621
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQOffsets
llvm::Optional< QOffsets > GetQOffsets()
Use qOffsets to query the offset used when relocating the target executable.
Definition: GDBRemoteCommunicationClient.cpp:3769
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_vFileMode
bool m_supports_vFileMode
Definition: GDBRemoteCommunicationClient.h:591
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_QPassSignals
LazyBool m_supports_QPassSignals
Definition: GDBRemoteCommunicationClient.h:577
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_qGDBServerVersion_is_valid
LazyBool m_qGDBServerVersion_is_valid
Definition: GDBRemoteCommunicationClient.h:556
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetSystemArchitecture
ArchSpec GetSystemArchitecture()
Definition: GDBRemoteCommunicationClient.cpp:1058
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_jModulesInfo
bool m_supports_jModulesInfo
Definition: GDBRemoteCommunicationClient.h:590
lldb_private::ProcessInstanceInfoMatch
Definition: ProcessInfo.h:163
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::~GDBRemoteCommunicationClient
~GDBRemoteCommunicationClient() override
Definition: GDBRemoteCommunicationClient.cpp:77
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qModuleInfo
bool m_supports_qModuleInfo
Definition: GDBRemoteCommunicationClient.h:589
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ServeSymbolLookups
void ServeSymbolLookups(lldb_private::Process *process)
Definition: GDBRemoteCommunicationClient.cpp:4071
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetGDBServerProgramVersion
uint32_t GetGDBServerProgramVersion()
Definition: GDBRemoteCommunicationClient.cpp:1188
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::OnRunPacketSent
void OnRunPacketSent(bool first) override
Definition: GDBRemoteCommunicationClient.cpp:4317
lldb_private::MemoryRegionInfo
Definition: MemoryRegionInfo.h:21
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetVContSupported
bool GetVContSupported(char flavor)
Definition: GDBRemoteCommunicationClient.cpp:421
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetCurrentThread
bool SetCurrentThread(uint64_t tid, lldb::pid_t pid=LLDB_INVALID_PROCESS_ID)
Definition: GDBRemoteCommunicationClient.cpp:2768
lldb_private::process_gdb_remote::eWatchpointWrite
@ eWatchpointWrite
Definition: GDBRemoteCommunication.h:39
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetVAttachOrWaitSupported
bool GetVAttachOrWaitSupported()
Definition: GDBRemoteCommunicationClient.cpp:230
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_threads_in_stop_reply
LazyBool m_supports_threads_in_stop_reply
Definition: GDBRemoteCommunicationClient.h:546
lldb_private::process_gdb_remote::QOffsets
The offsets used by the target when relocating the executable.
Definition: GDBRemoteCommunicationClient.h:38
lldb_private::Stream
Definition: Stream.h:28
lldb::addr_t
uint64_t addr_t
Definition: lldb-types.h:83
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendEnvironmentPacket
int SendEnvironmentPacket(char const *name_equal_value)
Sends a "QEnvironment:NAME=VALUE" packet that will build up the environment that will get used when l...
Definition: GDBRemoteCommunicationClient.cpp:903
lldb_private::LazyBool
LazyBool
Definition: lldb-private-enumerations.h:115
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_curr_pid_is_valid
LazyBool m_curr_pid_is_valid
Definition: GDBRemoteCommunicationClient.h:554
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetAugmentedLibrariesSVR4ReadSupported
bool GetAugmentedLibrariesSVR4ReadSupported()
Definition: GDBRemoteCommunicationClient.cpp:144
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQXferAuxvReadSupported
bool GetQXferAuxvReadSupported()
Definition: GDBRemoteCommunicationClient.cpp:165
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetWatchpointSupportInfo
Status GetWatchpointSupportInfo(uint32_t &num)
Definition: GDBRemoteCommunicationClient.cpp:1838
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::MakeDirectory
Status MakeDirectory(const FileSpec &file_spec, uint32_t mode)
Definition: GDBRemoteCommunicationClient.cpp:3030
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQXferFeaturesReadSupported
bool GetQXferFeaturesReadSupported()
Definition: GDBRemoteCommunicationClient.cpp:172
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetThreadsInfo
StructuredData::ObjectSP GetThreadsInfo()
Definition: GDBRemoteCommunicationClient.cpp:532
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetEchoSupported
bool GetEchoSupported()
Definition: GDBRemoteCommunicationClient.cpp:130
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQXferLibrariesSVR4ReadSupported
bool GetQXferLibrariesSVR4ReadSupported()
Definition: GDBRemoteCommunicationClient.cpp:151
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetListThreadsInStopReplySupported
void GetListThreadsInStopReplySupported()
Definition: GDBRemoteCommunicationClient.cpp:217
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetWorkingDir
bool GetWorkingDir(FileSpec &working_dir)
Gets the current working directory of a remote platform GDB server.
Definition: GDBRemoteCommunicationClient.cpp:1971
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_vCont_S
LazyBool m_supports_vCont_S
Definition: GDBRemoteCommunicationClient.h:552
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetRemoteMaxPacketSize
uint64_t GetRemoteMaxPacketSize()
Definition: GDBRemoteCommunicationClient.cpp:186
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::CalculateMD5
bool CalculateMD5(const FileSpec &file_spec, uint64_t &high, uint64_t &low)
Definition: GDBRemoteCommunicationClient.cpp:3439
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetGroupName
bool GetGroupName(uint32_t gid, std::string &name)
Definition: GDBRemoteCommunicationClient.cpp:2415
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::EnableErrorStringInPacket
void EnableErrorStringInPacket()
Definition: GDBRemoteCommunicationClient.cpp:566
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetSyncThreadStateSupported
bool GetSyncThreadStateSupported()
Definition: GDBRemoteCommunicationClient.cpp:244
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_qHostInfo_is_valid
LazyBool m_qHostInfo_is_valid
Definition: GDBRemoteCommunicationClient.h:553
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GDBRemoteCommunicationClient
GDBRemoteCommunicationClient()
Definition: GDBRemoteCommunicationClient.cpp:57
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supported_async_json_packets_is_valid
bool m_supported_async_json_packets_is_valid
Definition: GDBRemoteCommunicationClient.h:623
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_target_vm_page_size
int m_target_vm_page_size
Definition: GDBRemoteCommunicationClient.h:619
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qXfer_memory_map_read
LazyBool m_supports_qXfer_memory_map_read
Definition: GDBRemoteCommunicationClient.h:572
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_augmented_libraries_svr4_read
LazyBool m_supports_augmented_libraries_svr4_read
Definition: GDBRemoteCommunicationClient.h:573
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetThreadPacketSupported
LazyBool GetThreadPacketSupported(lldb::tid_t tid, llvm::StringRef packetStr)
Definition: GDBRemoteCommunicationClient.cpp:515
lldb_private::FileSpec
Definition: FileSpec.h:56
error
static llvm::raw_ostream & error(Stream &strm)
Definition: CommandReturnObject.cpp:17
ProcessInfo.h
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qXfer_features_read
LazyBool m_supports_qXfer_features_read
Definition: GDBRemoteCommunicationClient.h:571
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::DeallocateMemory
bool DeallocateMemory(lldb::addr_t addr)
Definition: GDBRemoteCommunicationClient.cpp:1493
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetCurrentThreadForRun
bool SetCurrentThreadForRun(uint64_t tid, lldb::pid_t pid=LLDB_INVALID_PROCESS_ID)
Definition: GDBRemoteCommunicationClient.cpp:2783
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostInfo
bool GetHostInfo(bool force=false)
Definition: GDBRemoteCommunicationClient.cpp:1237
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetSupportsThreadSuffix
bool GetSupportsThreadSuffix()
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_z0
bool m_supports_z0
Definition: GDBRemoteCommunicationClient.h:585
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::KillSpawnedProcess
bool KillSpawnedProcess(lldb::pid_t pid)
Definition: GDBRemoteCommunicationClient.cpp:2720
lldb_private::ProcessLaunchInfo
Definition: ProcessLaunchInfo.h:31
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qSymbol
bool m_supports_qSymbol
Definition: GDBRemoteCommunicationClient.h:588
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_watchpoint_support_info
LazyBool m_supports_watchpoint_support_info
Definition: GDBRemoteCommunicationClient.h:559
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::WriteRegister
bool WriteRegister(lldb::tid_t tid, uint32_t reg_num, llvm::ArrayRef< uint8_t > data)
Definition: GDBRemoteCommunicationClient.cpp:3518
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetSTDERR
int SetSTDERR(const FileSpec &file_spec)
Definition: GDBRemoteCommunicationClient.cpp:1951
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::Detach
Status Detach(bool keep_stopped, lldb::pid_t pid=LLDB_INVALID_PROCESS_ID)
Definition: GDBRemoteCommunicationClient.cpp:1515
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::Stat
llvm::Optional< GDBRemoteFStatData > Stat(const FileSpec &file_spec)
Definition: GDBRemoteCommunicationClient.cpp:3159
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ReadMemoryTags
lldb::DataBufferSP ReadMemoryTags(lldb::addr_t addr, size_t len, int32_t type)
Definition: GDBRemoteCommunicationClient.cpp:616
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_detach_stay_stopped
LazyBool m_supports_detach_stay_stopped
Definition: GDBRemoteCommunicationClient.h:560
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_memory_region_info
LazyBool m_supports_memory_region_info
Definition: GDBRemoteCommunicationClient.h:558
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetAddressingBits
uint32_t GetAddressingBits()
Definition: GDBRemoteCommunicationClient.cpp:1456
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQXferMemoryMapReadSupported
bool GetQXferMemoryMapReadSupported()
Definition: GDBRemoteCommunicationClient.cpp:179
lldb_private::StructuredData::ObjectSP
std::shared_ptr< Object > ObjectSP
Definition: StructuredData.h:59
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qUserName
bool m_supports_qUserName
Definition: GDBRemoteCommunicationClient.h:584
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_curr_tid_run
lldb::tid_t m_curr_tid_run
Current gdb remote protocol thread identifier for continue, step, etc.
Definition: GDBRemoteCommunicationClient.h:601
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::Unlink
Status Unlink(const FileSpec &file_spec)
Definition: GDBRemoteCommunicationClient.cpp:3376
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQXferLibrariesReadSupported
bool GetQXferLibrariesReadSupported()
Definition: GDBRemoteCommunicationClient.cpp:158
lldb_private::process_gdb_remote::PidTid::tid
uint64_t tid
Definition: GDBRemoteCommunicationClient.h:55
lldb_private::process_gdb_remote::PidTid
Definition: GDBRemoteCommunicationClient.h:53
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetFileExists
bool GetFileExists(const FileSpec &file_spec)
Definition: GDBRemoteCommunicationClient.cpp:3408
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_curr_pid_run
lldb::pid_t m_curr_pid_run
Current gdb remote protocol process identifier for continue, step, etc.
Definition: GDBRemoteCommunicationClient.h:597
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetGDBServerProgramName
const char * GetGDBServerProgramName()
Definition: GDBRemoteCommunicationClient.cpp:1180
lldb_private::ConstString
Definition: ConstString.h:40
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ReadAllRegisters
lldb::DataBufferSP ReadAllRegisters(lldb::tid_t tid)
Definition: GDBRemoteCommunicationClient.cpp:3503
lldb_private::StreamString
Definition: StreamString.h:23
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetFilePermissions
Status SetFilePermissions(const FileSpec &file_spec, uint32_t file_permissions)
Definition: GDBRemoteCommunicationClient.cpp:3051
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetModuleInfo
bool GetModuleInfo(const FileSpec &module_file_spec, const ArchSpec &arch_spec, ModuleSpec &module_spec)
Definition: GDBRemoteCommunicationClient.cpp:3809
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetDetachOnError
int SetDetachOnError(bool enable)
Sets the DetachOnError flag to enable for the process controlled by the stub.
Definition: GDBRemoteCommunicationClient.cpp:2024
lldb_private::process_gdb_remote::eWatchpointRead
@ eWatchpointRead
Definition: GDBRemoteCommunication.h:40
GDBRemote.h
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::CloseFile
bool CloseFile(lldb::user_id_t fd, Status &error)
Definition: GDBRemoteCommunicationClient.cpp:3122
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supported_async_json_packets_sp
lldb_private::StructuredData::ObjectSP m_supported_async_json_packets_sp
Definition: GDBRemoteCommunicationClient.h:624
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SaveRegisterState
bool SaveRegisterState(lldb::tid_t tid, uint32_t &save_id)
Definition: GDBRemoteCommunicationClient.cpp:3545
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_jGetSharedCacheInfo
LazyBool m_supports_jGetSharedCacheInfo
Definition: GDBRemoteCommunicationClient.h:576
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetProcessArchitecture
const ArchSpec & GetProcessArchitecture()
Definition: GDBRemoteCommunicationClient.cpp:1065
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetxPacketSupported
bool GetxPacketSupported()
Definition: GDBRemoteCommunicationClient.cpp:678
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::CreateSymlink
Status CreateSymlink(const FileSpec &src, const FileSpec &dst)
Definition: GDBRemoteCommunicationClient.cpp:3342
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendThreadSpecificPacketAndWaitForResponse
PacketResult SendThreadSpecificPacketAndWaitForResponse(lldb::tid_t tid, StreamString &&payload, StringExtractorGDBRemote &response)
Definition: GDBRemoteCommunicationClient.cpp:481
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ReadFile
uint64_t ReadFile(lldb::user_id_t fd, uint64_t offset, void *dst, uint64_t dst_len, Status &error)
Definition: GDBRemoteCommunicationClient.cpp:3270
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetProcessInfo
bool GetProcessInfo(lldb::pid_t pid, ProcessInstanceInfo &process_info)
Definition: GDBRemoteCommunicationClient.cpp:2138
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendSpeedTestPacket
bool SendSpeedTestPacket(uint32_t send_size, uint32_t recv_size)
Definition: GDBRemoteCommunicationClient.cpp:2615
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentThreadIDs
size_t GetCurrentThreadIDs(std::vector< lldb::tid_t > &thread_ids, bool &sequence_mutex_unavailable)
Definition: GDBRemoteCommunicationClient.cpp:2947
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_hostname
std::string m_hostname
Definition: GDBRemoteCommunicationClient.h:612
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_vCont_all
LazyBool m_supports_vCont_all
Definition: GDBRemoteCommunicationClient.h:547
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_z2
bool m_supports_z2
Definition: GDBRemoteCommunicationClient.h:586
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_z1
bool m_supports_z1
Definition: GDBRemoteCommunicationClient.h:585
string
string(SUBSTRING ${p} 10 -1 pStripped) if($
Definition: Plugins/CMakeLists.txt:40
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_alloc_dealloc_memory
LazyBool m_supports_alloc_dealloc_memory
Definition: GDBRemoteCommunicationClient.h:557
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_vRun
bool m_supports_vRun
Definition: GDBRemoteCommunicationClient.h:592
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetFilePermissions
Status GetFilePermissions(const FileSpec &file_spec, uint32_t &file_permissions)
Definition: GDBRemoteCommunicationClient.cpp:3222
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_default_packet_timeout
std::chrono::seconds m_default_packet_timeout
Definition: GDBRemoteCommunicationClient.h:618
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendSetCurrentThreadPacket
llvm::Optional< PidTid > SendSetCurrentThreadPacket(uint64_t tid, uint64_t pid, char op)
Definition: GDBRemoteCommunicationClient.cpp:2734
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ReadExtFeature
bool ReadExtFeature(const lldb_private::ConstString object, const lldb_private::ConstString annex, std::string &out, lldb_private::Status &err)
Definition: GDBRemoteCommunicationClient.cpp:3968
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetThreadStopInfo
bool GetThreadStopInfo(lldb::tid_t tid, StringExtractorGDBRemote &response)
Definition: GDBRemoteCommunicationClient.cpp:2805
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::operator=
const GDBRemoteCommunicationClient & operator=(const GDBRemoteCommunicationClient &)=delete
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_curr_tid
lldb::tid_t m_curr_tid
Current gdb remote protocol thread identifier for all other operations.
Definition: GDBRemoteCommunicationClient.h:599
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetThreadExtendedInfoSupported
bool GetThreadExtendedInfoSupported()
Definition: GDBRemoteCommunicationClient.cpp:552
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_attach_or_wait_reply
LazyBool m_attach_or_wait_reply
Definition: GDBRemoteCommunicationClient.h:562
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::RestoreRegisterState
bool RestoreRegisterState(lldb::tid_t tid, uint32_t save_id)
Definition: GDBRemoteCommunicationClient.cpp:3570
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qProcessInfoPID
bool m_supports_qProcessInfoPID
Definition: GDBRemoteCommunicationClient.h:583
lldb_private::process_gdb_remote::GDBRemoteClientBase
Definition: GDBRemoteClientBase.h:19
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetMemoryTaggingSupported
bool GetMemoryTaggingSupported()
Definition: GDBRemoteCommunicationClient.cpp:609
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQXferMemoryMapRegionInfo
Status GetQXferMemoryMapRegionInfo(lldb::addr_t addr, MemoryRegionInfo &region)
Definition: GDBRemoteCommunicationClient.cpp:1734
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendPacketsAndConcatenateResponses
PacketResult SendPacketsAndConcatenateResponses(const char *send_payload_prefix, std::string &response_string)
Definition: GDBRemoteCommunicationClient.cpp:694
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_qProcessInfo_is_valid
LazyBool m_qProcessInfo_is_valid
Definition: GDBRemoteCommunicationClient.h:555
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_qXfer_memory_map
std::vector< MemoryRegionInfo > m_qXfer_memory_map
Definition: GDBRemoteCommunicationClient.h:626
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SupportsGDBStoppointPacket
bool SupportsGDBStoppointPacket(GDBStoppointType type)
Definition: GDBRemoteCommunicationClient.h:294
lldb_private::TraceStopRequest
jLLDBTraceStop gdb-remote packet
Definition: TraceGDBRemotePackets.h:62
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostDefaultPacketTimeout
std::chrono::seconds GetHostDefaultPacketTimeout()
Definition: GDBRemoteCommunicationClient.cpp:1461
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentProcessInfo
bool GetCurrentProcessInfo(bool allow_lazy_pid=true)
Definition: GDBRemoteCommunicationClient.cpp:2160
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::OpenFile
lldb::user_id_t OpenFile(const FileSpec &file_spec, File::OpenOptions flags, mode_t mode, Status &error)
Definition: GDBRemoteCommunicationClient.cpp:3101
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendStdinNotification
int SendStdinNotification(const char *data, size_t data_len)
Sends a GDB remote protocol 'I' packet that delivers stdin data to the remote process.
Definition: GDBRemoteCommunicationClient.cpp:1436
lldb_private::process_gdb_remote::operator<<
llvm::raw_ostream & operator<<(llvm::raw_ostream &os, const QOffsets &offsets)
Definition: GDBRemoteCommunicationClient.cpp:49
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendEnvironment
int SendEnvironment(const Environment &env)
Definition: GDBRemoteCommunicationClient.cpp:894
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_num_supported_hardware_watchpoints
uint32_t m_num_supported_hardware_watchpoints
Definition: GDBRemoteCommunicationClient.h:603
lldb_private::ModuleSpec
Definition: ModuleSpec.h:26
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_vCont_s
LazyBool m_supports_vCont_s
Definition: GDBRemoteCommunicationClient.h:551
PosixApi.h
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_error_string_reply
LazyBool m_supports_error_string_reply
Definition: GDBRemoteCommunicationClient.h:578
lldb_private::Status
Definition: Status.h:44
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::WriteAllRegisters
bool WriteAllRegisters(lldb::tid_t tid, llvm::ArrayRef< uint8_t > data)
Definition: GDBRemoteCommunicationClient.cpp:3532
lldb_private::process_gdb_remote::eBreakpointHardware
@ eBreakpointHardware
Definition: GDBRemoteCommunication.h:38
lldb_private::Timeout< std::micro >
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_QEnvironmentHexEncoded
bool m_supports_QEnvironmentHexEncoded
Definition: GDBRemoteCommunicationClient.h:587
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_gdb_server_version
uint32_t m_gdb_server_version
Definition: GDBRemoteCommunicationClient.h:615
uint32_t
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::DecodeProcessInfoResponse
bool DecodeProcessInfoResponse(StringExtractorGDBRemote &response, ProcessInstanceInfo &process_info)
Definition: GDBRemoteCommunicationClient.cpp:2041
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ConfigureRemoteStructuredData
Status ConfigureRemoteStructuredData(ConstString type_name, const StructuredData::ObjectSP &config_sp)
Configure a StructuredData feature on the remote end.
Definition: GDBRemoteCommunicationClient.cpp:4267
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetWatchpointsTriggerAfterInstruction
Status GetWatchpointsTriggerAfterInstruction(bool &after, const ArchSpec &arch)
Definition: GDBRemoteCommunicationClient.cpp:1886
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentProcessAndThreadIDs
std::vector< std::pair< lldb::pid_t, lldb::tid_t > > GetCurrentProcessAndThreadIDs(bool &sequence_mutex_unavailable)
Definition: GDBRemoteCommunicationClient.cpp:2890
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendLaunchEventDataPacket
int SendLaunchEventDataPacket(const char *data, bool *was_supported=nullptr)
Definition: GDBRemoteCommunicationClient.cpp:987
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendGetTraceDataPacket
Status SendGetTraceDataPacket(StreamGDBRemote &packet, lldb::user_id_t uid, lldb::tid_t thread_id, llvm::MutableArrayRef< uint8_t > &buffer, size_t offset)
lldb::pid_t
uint64_t pid_t
Definition: lldb-types.h:85
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendTraceSupported
llvm::Expected< TraceSupportedResponse > SendTraceSupported(std::chrono::seconds interrupt_timeout)
Definition: GDBRemoteCommunicationClient.cpp:3606
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::WriteMemoryTags
Status WriteMemoryTags(lldb::addr_t addr, size_t len, int32_t type, const std::vector< uint8_t > &tags)
Definition: GDBRemoteCommunicationClient.cpp:660
lldb_private::StreamGDBRemote
Definition: GDBRemote.h:27
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_os_version
llvm::VersionTuple m_os_version
Definition: GDBRemoteCommunicationClient.h:608
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qXfer_libraries_read
LazyBool m_supports_qXfer_libraries_read
Definition: GDBRemoteCommunicationClient.h:569
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetGDBServerVersion
bool GetGDBServerVersion()
Definition: GDBRemoteCommunicationClient.cpp:1071
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_vCont_C
LazyBool m_supports_vCont_C
Definition: GDBRemoteCommunicationClient.h:550
ArchSpec.h
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_process_arch
ArchSpec m_process_arch
Definition: GDBRemoteCommunicationClient.h:607
UINT32_MAX
#define UINT32_MAX
Definition: lldb-defines.h:31
lldb_private::Environment
Definition: Environment.h:18
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_QSaveRegisterState
LazyBool m_supports_QSaveRegisterState
Definition: GDBRemoteCommunicationClient.h:567
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_z4
bool m_supports_z4
Definition: GDBRemoteCommunicationClient.h:586
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetFileSize
lldb::user_id_t GetFileSize(const FileSpec &file_spec)
Definition: GDBRemoteCommunicationClient.cpp:3170
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendTraceStop
llvm::Error SendTraceStop(const TraceStopRequest &request, std::chrono::seconds interrupt_timeout)
Definition: GDBRemoteCommunicationClient.cpp:3631
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::LaunchGDBServer
bool LaunchGDBServer(const char *remote_accept_hostname, lldb::pid_t &pid, uint16_t &port, std::string &socket_name)
Definition: GDBRemoteCommunicationClient.cpp:2636
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendArgumentsPacket
int SendArgumentsPacket(const ProcessLaunchInfo &launch_info)
Sends a GDB remote protocol 'A' packet that delivers program arguments to the remote server.
Definition: GDBRemoteCommunicationClient.cpp:814
uint16_t
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::RunShellCommand
Status RunShellCommand(llvm::StringRef command, const FileSpec &working_dir, int *status_ptr, int *signo_ptr, std::string *command_output, const Timeout< std::micro > &timeout)
Definition: GDBRemoteCommunicationClient.cpp:2977
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetOSBuildString
bool GetOSBuildString(std::string &s)
Definition: GDBRemoteCommunicationClient.cpp:1025
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_z3
bool m_supports_z3
Definition: GDBRemoteCommunicationClient.h:586
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetShlibInfoAddr
lldb::addr_t GetShlibInfoAddr()
Definition: GDBRemoteCommunicationClient.cpp:2968
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentProcessID
lldb::pid_t GetCurrentProcessID(bool allow_lazy=true)
Definition: GDBRemoteCommunicationClient.cpp:741
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetpPacketSupported
bool GetpPacketSupported(lldb::tid_t tid)
Definition: GDBRemoteCommunicationClient.cpp:509
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetSTDOUT
int SetSTDOUT(const FileSpec &file_spec)
Definition: GDBRemoteCommunicationClient.cpp:1931
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::HasAnyVContSupport
bool HasAnyVContSupport()
Definition: GDBRemoteCommunicationClient.h:288
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::LoadQXferMemoryMap
Status LoadQXferMemoryMap()
Definition: GDBRemoteCommunicationClient.cpp:1749
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_qXfer_memory_map_loaded
bool m_qXfer_memory_map_loaded
Definition: GDBRemoteCommunicationClient.h:627
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_watchpoints_trigger_after_instruction
LazyBool m_watchpoints_trigger_after_instruction
Definition: GDBRemoteCommunicationClient.h:561
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qXfer_auxv_read
LazyBool m_supports_qXfer_auxv_read
Definition: GDBRemoteCommunicationClient.h:568
lldb_private::process_gdb_remote::eBreakpointSoftware
@ eBreakpointSoftware
Definition: GDBRemoteCommunication.h:37
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetDisableASLR
int SetDisableASLR(bool enable)
Sets the disable ASLR flag to enable for a process that will be launched with the 'A' packet.
Definition: GDBRemoteCommunicationClient.cpp:2007
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_multiprocess
LazyBool m_supports_multiprocess
Definition: GDBRemoteCommunicationClient.h:579
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qXfer_libraries_svr4_read
LazyBool m_supports_qXfer_libraries_svr4_read
Definition: GDBRemoteCommunicationClient.h:570
lldb::user_id_t
uint64_t user_id_t
Definition: lldb-types.h:84
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendTraceStart
llvm::Error SendTraceStart(const llvm::json::Value &request, std::chrono::seconds interrupt_timeout)
Definition: GDBRemoteCommunicationClient.cpp:3666
lldb_private::process_gdb_remote::ProcessGDBRemote
Definition: ProcessGDBRemote.h:66
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
lldb_private::eLazyBoolCalculate
@ eLazyBoolCalculate
Definition: lldb-private-enumerations.h:115
Error
llvm::Error Error
Definition: UdtRecordCompleter.cpp:29
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetStopReply
bool GetStopReply(StringExtractorGDBRemote &response)
Definition: GDBRemoteCommunicationClient.cpp:2798
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::HandshakeWithServer
bool HandshakeWithServer(Status *error_ptr)
Definition: GDBRemoteCommunicationClient.cpp:82
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetSupportedStructuredDataPlugins
lldb_private::StructuredData::Array * GetSupportedStructuredDataPlugins()
Return the array of async JSON packet types supported by the remote.
Definition: GDBRemoteCommunicationClient.cpp:4201
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_os_build
std::string m_os_build
Definition: GDBRemoteCommunicationClient.h:610
lldb_private::process_gdb_remote::PidTid::pid
uint64_t pid
Definition: GDBRemoteCommunicationClient.h:54
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_avoid_g_packets
LazyBool m_avoid_g_packets
Definition: GDBRemoteCommunicationClient.h:566
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SupportsAllocDeallocMemory
LazyBool SupportsAllocDeallocMemory()
Definition: GDBRemoteCommunicationClient.h:360
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ReadRegister
lldb::DataBufferSP ReadRegister(lldb::tid_t tid, uint32_t reg_num)
Definition: GDBRemoteCommunicationClient.cpp:3487
StringExtractorGDBRemote
Definition: StringExtractorGDBRemote.h:21
LLDB_INVALID_THREAD_ID
#define LLDB_INVALID_THREAD_ID
Definition: lldb-defines.h:94
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::HasFullVContSupport
bool HasFullVContSupport()
Definition: GDBRemoteCommunicationClient.h:286
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_jThreadExtendedInfo
LazyBool m_supports_jThreadExtendedInfo
Definition: GDBRemoteCommunicationClient.h:574
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetModulesInfo
llvm::Optional< std::vector< ModuleSpec > > GetModulesInfo(llvm::ArrayRef< FileSpec > module_file_specs, const llvm::Triple &triple)
Definition: GDBRemoteCommunicationClient.cpp:3909
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::AllocateMemory
lldb::addr_t AllocateMemory(size_t size, uint32_t permissions)
Definition: GDBRemoteCommunicationClient.cpp:1467
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_jLoadedDynamicLibrariesInfos
LazyBool m_supports_jLoadedDynamicLibrariesInfos
Definition: GDBRemoteCommunicationClient.h:575
lldb_private::process_gdb_remote::GDBStoppointType
GDBStoppointType
Definition: GDBRemoteCommunication.h:35
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetOSKernelDescription
bool GetOSKernelDescription(std::string &s)
Definition: GDBRemoteCommunicationClient.cpp:1036
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostname
bool GetHostname(std::string &s)
Definition: GDBRemoteCommunicationClient.cpp:1047
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ResetDiscoverableSettings
void ResetDiscoverableSettings(bool did_exec)
Definition: GDBRemoteCommunicationClient.cpp:258
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendTraceGetState
llvm::Expected< std::string > SendTraceGetState(llvm::StringRef type, std::chrono::seconds interrupt_timeout)
Definition: GDBRemoteCommunicationClient.cpp:3701
lldb_private::ProcessInstanceInfoList
std::vector< ProcessInstanceInfo > ProcessInstanceInfoList
Definition: Host.h:30
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetOSVersion
llvm::VersionTuple GetOSVersion()
Definition: GDBRemoteCommunicationClient.cpp:1015
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetLaunchSuccess
bool GetLaunchSuccess(std::string &error_str)
Definition: GDBRemoteCommunicationClient.cpp:790
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_addressing_bits
uint32_t m_addressing_bits
Definition: GDBRemoteCommunicationClient.h:604
File.h
TraceGDBRemotePackets.h
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendSignalsToIgnore
Status SendSignalsToIgnore(llvm::ArrayRef< int32_t > signals)
Definition: GDBRemoteCommunicationClient.cpp:4247
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_qGroupName
bool m_supports_qGroupName
Definition: GDBRemoteCommunicationClient.h:584
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetThreadSuffixSupported
bool GetThreadSuffixSupported()
Definition: GDBRemoteCommunicationClient.cpp:409
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendLaunchArchPacket
int SendLaunchArchPacket(const char *arch)
Definition: GDBRemoteCommunicationClient.cpp:970
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::FStat
llvm::Optional< GDBRemoteFStatData > FStat(lldb::user_id_t fd)
Definition: GDBRemoteCommunicationClient.cpp:3135
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetServerSupportedFeatures
const std::string & GetServerSupportedFeatures() const
Return the feature set supported by the gdb-remote server.
Definition: GDBRemoteCommunicationClient.h:494
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_supports_thread_suffix
LazyBool m_supports_thread_suffix
Definition: GDBRemoteCommunicationClient.h:545
lldb_private::CompletionRequest
Definition: CompletionRequest.h:100
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_prepare_for_reg_writing_reply
LazyBool m_prepare_for_reg_writing_reply
Definition: GDBRemoteCommunicationClient.h:563
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::AutoCompleteDiskFileOrDirectory
void AutoCompleteDiskFileOrDirectory(CompletionRequest &request, bool only_dir)
Definition: GDBRemoteCommunicationClient.cpp:3196
lldb::tid_t
uint64_t tid_t
Definition: lldb-types.h:86
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::m_qSymbol_requests_done
bool m_qSymbol_requests_done
Definition: GDBRemoteCommunicationClient.h:588
lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::AvoidGPackets
bool AvoidGPackets(ProcessGDBRemote *process)
Definition: GDBRemoteCommunicationClient.cpp:3461