diff options
author | Greg Clayton <gclayton@apple.com> | 2011-02-12 06:28:37 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2011-02-12 06:28:37 +0000 |
commit | 71fc2a33b576839d7653c8ff13dd686efe54d9db (patch) | |
tree | 25384bde96fa85c18c0e7531455a0faebe16e1f9 /lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h | |
parent | ba6ead4bc08363cba1ecf353f5c60c23cecbd443 (diff) | |
download | bcm5719-llvm-71fc2a33b576839d7653c8ff13dd686efe54d9db.tar.gz bcm5719-llvm-71fc2a33b576839d7653c8ff13dd686efe54d9db.zip |
Added the ability to detect which vCont packets (using the "vCont?") packet
are supported by the remote GDB target. We can also now deal with the lack of
vCont support and send packets that the remote GDB stub can use. We also error
out of the continue if LLDB tries to do something too complex when vCont isn't
supported.
llvm-svn: 125433
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h')
-rw-r--r-- | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h | 67 |
1 files changed, 43 insertions, 24 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h index 3ebabeb7085..1499ba90443 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h @@ -97,23 +97,8 @@ public: CalculcateChecksum (const char *payload, size_t payload_length); - void - SetAckMode (bool enabled) - { - m_send_acks = enabled; - } - bool - GetThreadSuffixSupported () const - { - return m_thread_suffix_supported; - } - - void - SetThreadSuffixSupported (bool enabled) - { - m_thread_suffix_supported = enabled; - } + GetThreadSuffixSupported (); bool SendAsyncSignal (int signo); @@ -229,12 +214,6 @@ public: bool GetHostInfo (uint32_t timeout_seconds); - bool - HostInfoIsValid () const - { - return m_pointer_byte_size != 0; - } - const lldb_private::ArchSpec & GetHostArchitecture (); @@ -250,6 +229,33 @@ public: uint32_t GetAddressByteSize (); + bool + GetVContSupported (char flavor); + + void + ResetDiscoverableSettings(); + + bool + GetHostInfo (); + + bool + GetSendAcks (); + + bool + GetSupportsThreadSuffix (); + + bool + HasFullVContSupport () + { + return GetVContSupported ('A'); + } + + bool + HasAnyVContSupport () + { + return GetVContSupported ('a'); + } + protected: typedef std::list<std::string> packet_collection; @@ -264,11 +270,24 @@ protected: bool WaitForNotRunningPrivate (const lldb_private::TimeValue *timeout_ptr); + bool + HostInfoIsValid () const + { + return m_supports_qHostInfo != lldb::eLazyBoolCalculate; + } + //------------------------------------------------------------------ // Classes that inherit from GDBRemoteCommunication can see and modify these //------------------------------------------------------------------ - bool m_send_acks:1, - m_thread_suffix_supported:1; + lldb::LazyBool m_supports_not_sending_acks; + lldb::LazyBool m_supports_thread_suffix; + lldb::LazyBool m_supports_qHostInfo; + lldb::LazyBool m_supports_vCont_all; + lldb::LazyBool m_supports_vCont_any; + lldb::LazyBool m_supports_vCont_c; + lldb::LazyBool m_supports_vCont_C; + lldb::LazyBool m_supports_vCont_s; + lldb::LazyBool m_supports_vCont_S; lldb_private::Listener m_rx_packet_listener; lldb_private::Mutex m_sequence_mutex; // Restrict access to sending/receiving packets to a single thread at a time lldb_private::Predicate<bool> m_public_is_running; |