1 //===-- StringExtractorGDBRemote.h ------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef utility_StringExtractorGDBRemote_h_
11 #define utility_StringExtractorGDBRemote_h_
16 // Other libraries and framework includes
18 #include "Utility/StringExtractor.h"
20 class StringExtractorGDBRemote : public StringExtractor
24 StringExtractorGDBRemote() :
29 StringExtractorGDBRemote(const char *cstr) :
30 StringExtractor (cstr)
33 StringExtractorGDBRemote(const StringExtractorGDBRemote& rhs) :
38 virtual ~StringExtractorGDBRemote()
44 eServerPacketType_nack = 0,
45 eServerPacketType_ack,
46 eServerPacketType_invalid,
47 eServerPacketType_unimplemented,
48 eServerPacketType_interrupt, // CTRL+c packet or "\x03"
49 eServerPacketType_A, // Program arguments packet
50 eServerPacketType_qfProcessInfo,
51 eServerPacketType_qsProcessInfo,
53 eServerPacketType_qGroupName,
54 eServerPacketType_qHostInfo,
55 eServerPacketType_qLaunchGDBServer,
56 eServerPacketType_qKillSpawnedProcess,
57 eServerPacketType_qLaunchSuccess,
58 eServerPacketType_qProcessInfoPID,
59 eServerPacketType_qSpeedTest,
60 eServerPacketType_qUserName,
61 eServerPacketType_qGetWorkingDir,
62 eServerPacketType_QEnvironment,
63 eServerPacketType_QLaunchArch,
64 eServerPacketType_QSetDisableASLR,
65 eServerPacketType_QSetDetachOnError,
66 eServerPacketType_QSetSTDIN,
67 eServerPacketType_QSetSTDOUT,
68 eServerPacketType_QSetSTDERR,
69 eServerPacketType_QSetWorkingDir,
70 eServerPacketType_QStartNoAckMode,
71 eServerPacketType_qPlatform_shell,
72 eServerPacketType_qPlatform_mkdir,
73 eServerPacketType_qPlatform_chmod,
74 eServerPacketType_vFile_open,
75 eServerPacketType_vFile_close,
76 eServerPacketType_vFile_pread,
77 eServerPacketType_vFile_pwrite,
78 eServerPacketType_vFile_size,
79 eServerPacketType_vFile_mode,
80 eServerPacketType_vFile_exists,
81 eServerPacketType_vFile_md5,
82 eServerPacketType_vFile_stat,
83 eServerPacketType_vFile_symlink,
84 eServerPacketType_vFile_unlink,
85 // debug server packages
86 eServerPacketType_QEnvironmentHexEncoded,
87 eServerPacketType_QListThreadsInStopReply,
88 eServerPacketType_QRestoreRegisterState,
89 eServerPacketType_QSaveRegisterState,
90 eServerPacketType_QSetLogging,
91 eServerPacketType_QSetMaxPacketSize,
92 eServerPacketType_QSetMaxPayloadSize,
93 eServerPacketType_QSetEnableAsyncProfiling,
94 eServerPacketType_QSyncThreadState,
95 eServerPacketType_QThreadSuffixSupported,
97 eServerPacketType_qsThreadInfo,
98 eServerPacketType_qfThreadInfo,
99 eServerPacketType_qGetPid,
100 eServerPacketType_qGetProfileData,
101 eServerPacketType_qGDBServerVersion,
102 eServerPacketType_qMemoryRegionInfo,
103 eServerPacketType_qMemoryRegionInfoSupported,
104 eServerPacketType_qProcessInfo,
105 eServerPacketType_qRcmd,
106 eServerPacketType_qRegisterInfo,
107 eServerPacketType_qShlibInfoAddr,
108 eServerPacketType_qStepPacketSupported,
109 eServerPacketType_qSupported,
110 eServerPacketType_qSyncThreadStateSupported,
111 eServerPacketType_qThreadExtraInfo,
112 eServerPacketType_qThreadStopInfo,
113 eServerPacketType_qVAttachOrWaitSupported,
114 eServerPacketType_qWatchpointSupportInfo,
115 eServerPacketType_qWatchpointSupportInfoSupported,
116 eServerPacketType_qXfer_auxv_read,
118 eServerPacketType_vAttach,
119 eServerPacketType_vAttachWait,
120 eServerPacketType_vAttachOrWait,
121 eServerPacketType_vAttachName,
122 eServerPacketType_vCont,
123 eServerPacketType_vCont_actions, // vCont?
125 eServerPacketType_stop_reason, // '?'
133 eServerPacketType_I, // stdin notification
145 eServerPacketType__M,
146 eServerPacketType__m,
150 GetServerPacketType () const;
163 GetResponseType () const;
166 IsOKResponse() const;
169 IsUnsupportedResponse() const;
172 IsNormalResponse () const;
175 IsErrorResponse() const;
177 // Returns zero if the packet isn't a EXX packet where XX are two hex
178 // digits. Otherwise the error encoded in XX is returned.
183 GetEscapedBinaryData (std::string &str);
187 #endif // utility_StringExtractorGDBRemote_h_